From: Ondrej M. <om...@re...> - 2012-08-07 14:02:14
|
I have reviewed this patch and it looks sane, skipping symlinks makes sense in this test and I think the patch should be pushed upstream. -- Ondrej On 08/06/2012 04:02 PM, mva...@re... wrote: > From: Miroslav Vadkerti <mva...@re...> > > The checkaccess tool showed FAIL for invalid symlinks. > This caused a false positive to appear in testing. > This patch causes the tool to skip invalid symlinks > and write an INFO message. > > Also a compilation warning was fixed. Argument of file_select > function didn't have completely correct type. > > Signed-off-by: Miroslav Vadkerti <mva...@re...> > --- > audit/misc/tests/checkaccess.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/audit/misc/tests/checkaccess.c b/audit/misc/tests/checkaccess.c > index b99f1b8..79ed770 100644 > --- a/audit/misc/tests/checkaccess.c > +++ b/audit/misc/tests/checkaccess.c > @@ -12,7 +12,7 @@ int g_rc = 0; > /* > * Do not include . or .. in directory list. > */ > -int file_select (struct direct *entry) > +int file_select (const struct direct *entry) > { > if ((strcmp (entry->d_name, ".") == 0) > || (strcmp (entry->d_name, "..") == 0)) > @@ -79,6 +79,12 @@ int check_access (char *pathname) > goto EXIT; > } > } else { > + // ignore symlinks > + rc = lstat(entry, &statbuf); > + if(rc == 0 && S_ISLNK(statbuf.st_mode) == 1) { > + printf("INFO: %s/%s. Skipping symlink\n", pathname, entries[i]->d_name); > + continue; > + } > if ((rc = stat(entry, &statbuf)) == -1) { > printf("FAIL: %s. Could not obtain file status\n", entry); > g_rc = -1; |