Date: Thu, 20 Sep 2018 14:38:38 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 231517] fts: causes error in valgrind Message-ID: <bug-231517-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D231517 Bug ID: 231517 Summary: fts: causes error in valgrind Product: Base System Version: 11.2-STABLE Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: koue@chaosophia.net Hi, Calling 'fts_close' immediately after 'fts_open' causes error in valgrind: $ valgrind --track-origins=3Dyes --tool=3Dmemcheck --leak-check=3Dyes --show-reachable=3Dyes ./ftstest =3D=3D76510=3D=3D Memcheck, a memory error detector =3D=3D76510=3D=3D Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward = et al. =3D=3D76510=3D=3D Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyr= ight info =3D=3D76510=3D=3D Command: ./ftstest =3D=3D76510=3D=3D=20 =3D=3D76510=3D=3D Conditional jump or move depends on uninitialised value(s) =3D=3D76510=3D=3D at 0x4EA2297: fts_close (in /lib/libc.so.7) =3D=3D76510=3D=3D by 0x4008D9: main (in /root/fts/ftstest) =3D=3D76510=3D=3D Uninitialised value was created by a heap allocation =3D=3D76510=3D=3D at 0x4C245B1: malloc (in /usr/local/lib/valgrind/vgpreload_memcheck-amd64-freebsd.so) =3D=3D76510=3D=3D by 0x4EA1F01: fts_open (in /lib/libc.so.7) =3D=3D76510=3D=3D by 0x40089E: main (in /root/fts/ftstest) =3D=3D76510=3D=3D=20 =3D=3D76510=3D=3D=20 =3D=3D76510=3D=3D HEAP SUMMARY: =3D=3D76510=3D=3D in use at exit: 0 bytes in 0 blocks =3D=3D76510=3D=3D total heap usage: 5 allocs, 5 frees, 2,647 bytes alloca= ted =3D=3D76510=3D=3D=20 =3D=3D76510=3D=3D All heap blocks were freed -- no leaks are possible =3D=3D76510=3D=3D=20 =3D=3D76510=3D=3D For counts of detected and suppressed errors, rerun with:= -v =3D=3D76510=3D=3D ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 fr= om 0) ftstest.c =3D=3D=3D=3D=3D=3D=3D=3D=3D #include <fts.h> #include <stdio.h> #include <sys/stat.h> int main(void) { FTS *fts; FTSENT *e; char *path =3D "/etc"; char * const path_argv[] =3D { path, NULL }; if ((fts =3D fts_open(path_argv, FTS_LOGICAL, NULL)) =3D=3D NULL) { printf("fts_open error: %s\n", path); return (1); } fts_close(fts); return (0); } If 'fts_read' is called before 'fts_close' no complaints from vagrind. + while ((e =3D fts_read(fts)) !=3D NULL) { + printf("name: %s, mtime: %ld\n", e->fts_name, e->fts_statp->st_mtime); + } I don't know if its related but I found same issue in GNU maillist: https://lists.gnu.org/archive/html/bug-gnulib/2018-05/msg00117.html --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-231517-227>