- Fix error reporting of matchpathcon

This commit is contained in:
Daniel J Walsh 2006-06-21 13:12:11 +00:00
parent 645f93a8a5
commit 2d9b36b51e
2 changed files with 16 additions and 10 deletions

View File

@ -181,8 +181,8 @@ diff --exclude-from=exclude -N -u -r nsalibselinux/src/matchpathcon.c libselinux
+} +}
diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselinux-1.30.15/utils/matchpathcon.c diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselinux-1.30.15/utils/matchpathcon.c
--- nsalibselinux/utils/matchpathcon.c 2006-05-18 12:11:17.000000000 -0400 --- nsalibselinux/utils/matchpathcon.c 2006-05-18 12:11:17.000000000 -0400
+++ libselinux-1.30.15/utils/matchpathcon.c 2006-06-20 11:30:26.000000000 -0400 +++ libselinux-1.30.15/utils/matchpathcon.c 2006-06-21 09:05:20.000000000 -0400
@@ -12,19 +12,43 @@ @@ -12,19 +12,44 @@
exit(1); exit(1);
} }
@ -190,8 +190,8 @@ diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselin
+ char *buf; + char *buf;
+ int rc = matchpathcon(path, 0, &buf); + int rc = matchpathcon(path, 0, &buf);
+ if (rc < 0) { + if (rc < 0) {
+ fprintf(stderr, "matchpathcon(%s) failed\n", path); + fprintf(stderr, "matchpathcon(%s) failed: %s\n", path, strerror(errno));
+ return 2; + return 1;
+ } + }
+ if (header) + if (header)
+ printf("%s\t%s\n", path, buf); + printf("%s\t%s\n", path, buf);
@ -210,6 +210,7 @@ diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselin
int header=1, opt; int header=1, opt;
+ int verify=0; + int verify=0;
+ int notrans=0; + int notrans=0;
+ int error=0;
if (argc < 2) usage(argv[0]); if (argc < 2) usage(argv[0]);
@ -229,7 +230,7 @@ diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselin
case 'f': case 'f':
if (init) { if (init) {
fprintf(stderr, "%s: -f and -p are exclusive\n", argv[0]); fprintf(stderr, "%s: -f and -p are exclusive\n", argv[0]);
@@ -54,17 +78,29 @@ @@ -54,18 +79,30 @@
} }
} }
for (i = optind; i < argc; i++) { for (i = optind; i < argc; i++) {
@ -256,16 +257,18 @@ diff --exclude-from=exclude -N -u -r nsalibselinux/utils/matchpathcon.c libselin
- freecon(buf); - freecon(buf);
+ if (rc >= 0) { + if (rc >= 0) {
+ printf("%s has context %s, should be ", argv[i], con); + printf("%s has context %s, should be ", argv[i], con);
+ printmatchpathcon(argv[i], 0); + error += printmatchpathcon(argv[i], 0);
+ freecon(con); + freecon(con);
+ } else { + } else {
+ printf("actual context unknown: %s, should be ", strerror(errno)); + printf("actual context unknown: %s, should be ", strerror(errno));
+ printmatchpathcon(argv[i], 0); + error += printmatchpathcon(argv[i], 0);
+ } + }
+ } + }
+ } else { + } else {
+ printmatchpathcon(argv[i], header); + error += printmatchpathcon(argv[i], header);
+ } + }
} }
matchpathcon_fini(); matchpathcon_fini();
return 0; - return 0;
+ return error;
}

View File

@ -2,7 +2,7 @@
Summary: SELinux library and simple utilities Summary: SELinux library and simple utilities
Name: libselinux Name: libselinux
Version: 1.30.15 Version: 1.30.15
Release: 2 Release: 3
License: Public domain (uncopyrighted) License: Public domain (uncopyrighted)
Group: System Environment/Libraries Group: System Environment/Libraries
Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz Source: http://www.nsa.gov/selinux/archives/%{name}-%{version}.tgz
@ -117,6 +117,9 @@ exit 0
%{_libdir}/python*/site-packages/selinux.py* %{_libdir}/python*/site-packages/selinux.py*
%changelog %changelog
* Wed Jun 21 2006 Dan Walsh <dwalsh@redhat.com> 1.30.15-3
- Fix error reporting of matchpathcon
* Mon Jun 19 2006 Dan Walsh <dwalsh@redhat.com> 1.30.15-2 * Mon Jun 19 2006 Dan Walsh <dwalsh@redhat.com> 1.30.15-2
- Add function to compare file context on disk versus contexts in file_contexts file. - Add function to compare file context on disk versus contexts in file_contexts file.