On Wed, 2021-11-10 at 00:02 +0000, Joseph Myers wrote: > On Tue, 9 Nov 2021, Xi Ruoyao via Gcc-patches wrote: > > > POSIX says: > > > > On some implementations, if buf is a null pointer, getcwd() may > > obtain > > size bytes of memory using malloc(). In this case, the pointer > > returned > > by getcwd() may be used as the argument in a subsequent call to > > free(). > > Invoking getcwd() with buf as a null pointer is not recommended > > in > > conforming applications. > > > > This produces an error building GCC with --enable-werror-always: > > > > ../../../fixincludes/fixincl.c: In function ‘process’: > > ../../../fixincludes/fixincl.c:1356:7: error: argument 1 is null > > but > > the corresponding size argument 2 value is 4096 [- > > Werror=nonnull] > > Isn't this warning actually a glibc bug > <https://sourceware.org/bugzilla/show_bug.cgi?id=27476>?
However we can't assume the libc we are using is Glibc. Even if the libc supports getcwd() with NULL argument, we are still leaking memory. -- Xi Ruoyao <xry...@mengyan1223.wang> School of Aerospace Science and Technology, Xidian University