On Fri, Apr 16, 2010 at 10:16 AM, Éric Piel <[email protected]> wrote: > On 16/04/10 18:17, Alan Coopersmith wrote: >> Tiago Vignatti wrote: >>> Seems to be harmless. Meh. >>> >>> Signed-off-by: Tiago Vignatti <[email protected]> >>> --- >>> hw/xfree86/parser/scan.c | 9 +++++++-- >>> 1 files changed, 7 insertions(+), 2 deletions(-) >>> >>> diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c >>> index 8aab0cf..0b9461b 100644 >>> --- a/hw/xfree86/parser/scan.c >>> +++ b/hw/xfree86/parser/scan.c >>> @@ -844,11 +844,16 @@ OpenConfigFile(const char *path, const char *cmdline, >>> const char *projroot, >>> static int >>> ConfigFilter(const struct dirent *de) >>> { >>> - const char *name = de->d_name; >>> + const char *name; >>> size_t len = strlen(name); >>> size_t suflen = strlen(XCONFIGSUFFIX); >>> >>> - if (!name || name[0] == '.' || len <= suflen) >>> + if (!name) >>> + return 0; >>> + >>> + name = de->d_name; >> >> NACK. You are now checking if the uninitialized variable is not-NULL and >> never checking the actual value, as well as calling strlen on the >> uninitialized >> value. The problem is that strlen(name) is being called before if (!name), >> so >> the correct fix would be: > ... and you probably want to check de is not NULL as well :-)
Actually, this function is only over called as the filter for scandir. I doubt that scandir will be passing it a NULL dirent, but I can't say that for sure. -- Dan _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
