Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-16 Thread Aurelien Jarno
On 2021-09-15 00:06, Aurelien Jarno wrote:
> On 2021-09-09 00:52, Aurelien Jarno wrote:
> > control: forwarded -1 https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> > 
> > On 2021-09-09 00:21, Helmut Grohne wrote:
> > > Source: nss
> > > Version: 2:3.70-1
> > > Severity: serious
> > > Tags: ftbfs
> > > X-Debbugs-Cc: debian-gl...@lists.debian.org
> > > 
> > > A native build of nss now fails as follows:
> > > 
> > > | x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   
> > > -pipe -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux 
> > > -Wall -Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG 
> > > -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> > > -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DDEBUG -UNDEBUG 
> > > -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> > > -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
> > > -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
> > > -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES 
> > > -I/<>/dist/include -I/<>/dist/public/coreconf 
> > > -I/<>/dist/private/coreconf  nsinstall.c
> > > | nsinstall.c: In function ‘main’:
> > > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > > argument 2 value is 4096 [-Werror=nonnull]
> > > |70 | #define GETCWD getcwd
> > > |   |^
> > > | nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
> > > |   239 |  cwd = GETCWD(0, PATH_MAX);
> > > |   |^~
> > > | In file included from nsinstall.c:20:
> > > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > > declared with attribute ‘write_only (1, 2)’
> > > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > > |   |  ^~
> > > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > > argument 2 value is 4096 [-Werror=nonnull]
> > > |70 | #define GETCWD getcwd
> > > |   |^
> > > | nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
> > > |   246 | todir = GETCWD(0, PATH_MAX);
> > > |   | ^~
> > > | In file included from nsinstall.c:20:
> > > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > > declared with attribute ‘write_only (1, 2)’
> > > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > > |   |  ^~
> > > | cc1: all warnings being treated as errors
> > > | make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
> > > | make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
> > > | make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
> > > | make[1]: Leaving directory '/<>'
> > > | make: *** [debian/rules:195: build] Error 2
> > > | dpkg-buildpackage: error: debian/rules build subprocess returned exit 
> > > status 2
> > > 
> > > It looks very much like this is due to the glibc 2.32 upload. My reading
> > > of man getcwd is that the call of nss is legit (as a glibc extension).
> > > Maybe this is a glibc bug?
> > 
> > This is indeed partially a glibc bug, already reported upstream there:
> > https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> > 
> > Note however that the feature of calling getcwd(NULL, >0) is a GNU
> > extension, and that the above code doesn't define _GNU_SOURCE, so this
> > is also a bug in the package.
> > 
> > Please also note that there are discussion to deprecate the support of
> > size > 0 when buf is NULL:
> > https://sourceware.org/bugzilla/show_bug.cgi?id=26545
> 
> I have uploaded a version with a temporary fix, until upstream takes a
> decision. If upstream decides to drop this part of the GNU extension,
> this patch will be removed from the Debian package, so that the
> behaviour is consistent between distribution. Of course in that case
> the documentation will have to be fixed accordingly. The packages using
> this extension will have to get fixed, just like some distributions
> using glibc >= 2.32 started to do.

Note that the patch I submitted has been accepted, so this won't be
reverted.

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-14 Thread Aurelien Jarno
On 2021-09-09 00:52, Aurelien Jarno wrote:
> control: forwarded -1 https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> 
> On 2021-09-09 00:21, Helmut Grohne wrote:
> > Source: nss
> > Version: 2:3.70-1
> > Severity: serious
> > Tags: ftbfs
> > X-Debbugs-Cc: debian-gl...@lists.debian.org
> > 
> > A native build of nss now fails as follows:
> > 
> > | x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   -pipe 
> > -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall 
> > -Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE 
> > -D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT 
> > -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> > -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
> > -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
> > -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/<>/dist/include 
> > -I/<>/dist/public/coreconf 
> > -I/<>/dist/private/coreconf  nsinstall.c
> > | nsinstall.c: In function ‘main’:
> > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > argument 2 value is 4096 [-Werror=nonnull]
> > |70 | #define GETCWD getcwd
> > |   |^
> > | nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
> > |   239 |  cwd = GETCWD(0, PATH_MAX);
> > |   |^~
> > | In file included from nsinstall.c:20:
> > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > declared with attribute ‘write_only (1, 2)’
> > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > |   |  ^~
> > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > argument 2 value is 4096 [-Werror=nonnull]
> > |70 | #define GETCWD getcwd
> > |   |^
> > | nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
> > |   246 | todir = GETCWD(0, PATH_MAX);
> > |   | ^~
> > | In file included from nsinstall.c:20:
> > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > declared with attribute ‘write_only (1, 2)’
> > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > |   |  ^~
> > | cc1: all warnings being treated as errors
> > | make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
> > | make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
> > | make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
> > | make[1]: Leaving directory '/<>'
> > | make: *** [debian/rules:195: build] Error 2
> > | dpkg-buildpackage: error: debian/rules build subprocess returned exit 
> > status 2
> > 
> > It looks very much like this is due to the glibc 2.32 upload. My reading
> > of man getcwd is that the call of nss is legit (as a glibc extension).
> > Maybe this is a glibc bug?
> 
> This is indeed partially a glibc bug, already reported upstream there:
> https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> 
> Note however that the feature of calling getcwd(NULL, >0) is a GNU
> extension, and that the above code doesn't define _GNU_SOURCE, so this
> is also a bug in the package.
> 
> Please also note that there are discussion to deprecate the support of
> size > 0 when buf is NULL:
> https://sourceware.org/bugzilla/show_bug.cgi?id=26545

I have uploaded a version with a temporary fix, until upstream takes a
decision. If upstream decides to drop this part of the GNU extension,
this patch will be removed from the Debian package, so that the
behaviour is consistent between distribution. Of course in that case
the documentation will have to be fixed accordingly. The packages using
this extension will have to get fixed, just like some distributions
using glibc >= 2.32 started to do.

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Mike Hommey
On Thu, Sep 09, 2021 at 12:52:03AM +0200, Aurelien Jarno wrote:
> control: forwarded -1 https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> 
> On 2021-09-09 00:21, Helmut Grohne wrote:
> > Source: nss
> > Version: 2:3.70-1
> > Severity: serious
> > Tags: ftbfs
> > X-Debbugs-Cc: debian-gl...@lists.debian.org
> > 
> > A native build of nss now fails as follows:
> > 
> > | x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   -pipe 
> > -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall 
> > -Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE 
> > -D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT 
> > -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> > -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
> > -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
> > -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/<>/dist/include 
> > -I/<>/dist/public/coreconf 
> > -I/<>/dist/private/coreconf  nsinstall.c
> > | nsinstall.c: In function ‘main’:
> > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > argument 2 value is 4096 [-Werror=nonnull]
> > |70 | #define GETCWD getcwd
> > |   |^
> > | nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
> > |   239 |  cwd = GETCWD(0, PATH_MAX);
> > |   |^~
> > | In file included from nsinstall.c:20:
> > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > declared with attribute ‘write_only (1, 2)’
> > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > |   |  ^~
> > | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> > argument 2 value is 4096 [-Werror=nonnull]
> > |70 | #define GETCWD getcwd
> > |   |^
> > | nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
> > |   246 | todir = GETCWD(0, PATH_MAX);
> > |   | ^~
> > | In file included from nsinstall.c:20:
> > | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ 
> > declared with attribute ‘write_only (1, 2)’
> > |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> > |   |  ^~
> > | cc1: all warnings being treated as errors
> > | make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
> > | make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
> > | make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
> > | make[1]: Leaving directory '/<>'
> > | make: *** [debian/rules:195: build] Error 2
> > | dpkg-buildpackage: error: debian/rules build subprocess returned exit 
> > status 2
> > 
> > It looks very much like this is due to the glibc 2.32 upload. My reading
> > of man getcwd is that the call of nss is legit (as a glibc extension).
> > Maybe this is a glibc bug?
> 
> This is indeed partially a glibc bug, already reported upstream there:
> https://sourceware.org/bugzilla/show_bug.cgi?id=27476
> 
> Note however that the feature of calling getcwd(NULL, >0) is a GNU
> extension, and that the above code doesn't define _GNU_SOURCE, so this
> is also a bug in the package.

That said, it's also an extension in Solaris.

Mike



Processed: Re: Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

> reassign 993973 libc6-dev
Bug #993973 [src:nss] nss FTBFS with glibc 2.32: error: argument 1 is null but 
the corresponding size argument 2 value is 4096 [-Werror=nonnull]
Bug reassigned from package 'src:nss' to 'libc6-dev'.
No longer marked as found in versions nss/2:3.70-1.
Ignoring request to alter fixed versions of bug #993973 to the same values 
previously set
> found 993973 2.32-1
Bug #993973 [libc6-dev] nss FTBFS with glibc 2.32: error: argument 1 is null 
but the corresponding size argument 2 value is 4096 [-Werror=nonnull]
Marked as found in versions glibc/2.32-1.
> thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
993973: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=993973
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Mike Hommey
reassign 993973 libc6-dev
found 993973 2.32-1
thanks

On Thu, Sep 09, 2021 at 12:21:52AM +0200, Helmut Grohne wrote:
> Source: nss
> Version: 2:3.70-1
> Severity: serious
> Tags: ftbfs
> X-Debbugs-Cc: debian-gl...@lists.debian.org
> 
> A native build of nss now fails as follows:
> 
> | x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   -pipe 
> -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall 
> -Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE 
> -D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DDEBUG 
> -UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
> -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
> -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/<>/dist/include 
> -I/<>/dist/public/coreconf 
> -I/<>/dist/private/coreconf  nsinstall.c
> | nsinstall.c: In function ‘main’:
> | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> argument 2 value is 4096 [-Werror=nonnull]
> |70 | #define GETCWD getcwd
> |   |^
> | nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
> |   239 |  cwd = GETCWD(0, PATH_MAX);
> |   |^~
> | In file included from nsinstall.c:20:
> | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
> with attribute ‘write_only (1, 2)’
> |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> |   |  ^~
> | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> argument 2 value is 4096 [-Werror=nonnull]
> |70 | #define GETCWD getcwd
> |   |^
> | nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
> |   246 | todir = GETCWD(0, PATH_MAX);
> |   | ^~
> | In file included from nsinstall.c:20:
> | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
> with attribute ‘write_only (1, 2)’
> |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> |   |  ^~
> | cc1: all warnings being treated as errors
> | make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
> | make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
> | make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
> | make[1]: Leaving directory '/<>'
> | make: *** [debian/rules:195: build] Error 2
> | dpkg-buildpackage: error: debian/rules build subprocess returned exit 
> status 2
> 
> It looks very much like this is due to the glibc 2.32 upload. My reading
> of man getcwd is that the call of nss is legit (as a glibc extension).
> Maybe this is a glibc bug?

Quoting man getcwd:

  As an extension to the POSIX.1-2001 standard, glibc's getcwd() allocates
  the buffer dynamically using malloc(3) if buf is NULL. In this case, the
  allocated buffer has the length size unless size is zero, when buf is
  allocated as big as necessary

But that's from manpages-dev. The documentation from glibc itself says:

  The GNU C Library version of this function also permits you to specify
  a null pointer for the buffer argument. Then getcwd allocates a buffer
  automatically, as with malloc (see Unconstrained Allocation). If the
  size is greater than zero, then the buffer is that large; otherwise,
  the buffer is as large as necessary to hold the result. 

Which is essentially the same thing. The unistd.h header itself says:

  In GNU, if BUF is NULL, an array is allocated with `malloc'; the array
  is SIZE bytes long, unless SIZE == 0, in which case it is as big as
  necessary.

This doesn't fit with the use of __attribute__((access(write_only(1, 2
IMO.

Mike



Processed: Re: Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Debian Bug Tracking System
Processing control commands:

> forwarded -1 https://sourceware.org/bugzilla/show_bug.cgi?id=27476
Bug #993973 [src:nss] nss FTBFS with glibc 2.32: error: argument 1 is null but 
the corresponding size argument 2 value is 4096 [-Werror=nonnull]
Set Bug forwarded-to-address to 
'https://sourceware.org/bugzilla/show_bug.cgi?id=27476'.

-- 
993973: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=993973
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems



Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Aurelien Jarno
control: forwarded -1 https://sourceware.org/bugzilla/show_bug.cgi?id=27476

On 2021-09-09 00:21, Helmut Grohne wrote:
> Source: nss
> Version: 2:3.70-1
> Severity: serious
> Tags: ftbfs
> X-Debbugs-Cc: debian-gl...@lists.debian.org
> 
> A native build of nss now fails as follows:
> 
> | x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   -pipe 
> -ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall 
> -Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE 
> -D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DDEBUG 
> -UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
> -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
> -DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
> -DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/<>/dist/include 
> -I/<>/dist/public/coreconf 
> -I/<>/dist/private/coreconf  nsinstall.c
> | nsinstall.c: In function ‘main’:
> | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> argument 2 value is 4096 [-Werror=nonnull]
> |70 | #define GETCWD getcwd
> |   |^
> | nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
> |   239 |  cwd = GETCWD(0, PATH_MAX);
> |   |^~
> | In file included from nsinstall.c:20:
> | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
> with attribute ‘write_only (1, 2)’
> |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> |   |  ^~
> | nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
> argument 2 value is 4096 [-Werror=nonnull]
> |70 | #define GETCWD getcwd
> |   |^
> | nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
> |   246 | todir = GETCWD(0, PATH_MAX);
> |   | ^~
> | In file included from nsinstall.c:20:
> | /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
> with attribute ‘write_only (1, 2)’
> |   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
> |   |  ^~
> | cc1: all warnings being treated as errors
> | make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
> | make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
> | make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
> | make[1]: Leaving directory '/<>'
> | make: *** [debian/rules:195: build] Error 2
> | dpkg-buildpackage: error: debian/rules build subprocess returned exit 
> status 2
> 
> It looks very much like this is due to the glibc 2.32 upload. My reading
> of man getcwd is that the call of nss is legit (as a glibc extension).
> Maybe this is a glibc bug?

This is indeed partially a glibc bug, already reported upstream there:
https://sourceware.org/bugzilla/show_bug.cgi?id=27476

Note however that the feature of calling getcwd(NULL, >0) is a GNU
extension, and that the above code doesn't define _GNU_SOURCE, so this
is also a bug in the package.

Please also note that there are discussion to deprecate the support of
size > 0 when buf is NULL:
https://sourceware.org/bugzilla/show_bug.cgi?id=26545

-- 
Aurelien Jarno  GPG: 4096R/1DDD8C9B
aurel...@aurel32.net http://www.aurel32.net



Bug#993973: nss FTBFS with glibc 2.32: error: argument 1 is null but the corresponding size argument 2 value is 4096 [-Werror=nonnull]

2021-09-08 Thread Helmut Grohne
Source: nss
Version: 2:3.70-1
Severity: serious
Tags: ftbfs
X-Debbugs-Cc: debian-gl...@lists.debian.org

A native build of nss now fails as follows:

| x86_64-linux-gnu-gcc -o OBJS/nsinstall.o -c -std=c99 -g -g -fPIC   -pipe 
-ffunction-sections -fdata-sections -DHAVE_STRERROR -DLINUX -Dlinux -Wall 
-Wshadow -Werror -DXP_UNIX -DXP_UNIX -DDEBUG -UNDEBUG -D_DEFAULT_SOURCE 
-D_BSD_SOURCE -D_POSIX_SOURCE -DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DDEBUG 
-UNDEBUG -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_SOURCE 
-DSDB_MEASURE_USE_TEMP_DIR -D_REENTRANT -DNSS_NO_INIT_SUPPORT 
-DUSE_UTIL_DIRECTLY -DNO_NSPR_10_SUPPORT 
-DSSL_DISABLE_DEPRECATED_CIPHER_SUITE_NAMES -I/<>/dist/include 
-I/<>/dist/public/coreconf 
-I/<>/dist/private/coreconf  nsinstall.c
| nsinstall.c: In function ‘main’:
| nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
argument 2 value is 4096 [-Werror=nonnull]
|70 | #define GETCWD getcwd
|   |^
| nsinstall.c:239:8: note: in expansion of macro ‘GETCWD’
|   239 |  cwd = GETCWD(0, PATH_MAX);
|   |^~
| In file included from nsinstall.c:20:
| /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
with attribute ‘write_only (1, 2)’
|   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
|   |  ^~
| nsinstall.c:70:16: error: argument 1 is null but the corresponding size 
argument 2 value is 4096 [-Werror=nonnull]
|70 | #define GETCWD getcwd
|   |^
| nsinstall.c:246:13: note: in expansion of macro ‘GETCWD’
|   246 | todir = GETCWD(0, PATH_MAX);
|   | ^~
| In file included from nsinstall.c:20:
| /usr/include/unistd.h:520:14: note: in a call to function ‘getcwd’ declared 
with attribute ‘write_only (1, 2)’
|   520 | extern char *getcwd (char *__buf, size_t __size) __THROW __wur
|   |  ^~
| cc1: all warnings being treated as errors
| make[2]: *** [../../coreconf/rules.mk:292: OBJS/nsinstall.o] Error 1
| make[2]: Leaving directory '/<>/nss/coreconf/nsinstall'
| make[1]: *** [debian/rules:100: override_dh_auto_build] Error 2
| make[1]: Leaving directory '/<>'
| make: *** [debian/rules:195: build] Error 2
| dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

It looks very much like this is due to the glibc 2.32 upload. My reading
of man getcwd is that the call of nss is legit (as a glibc extension).
Maybe this is a glibc bug?

Helmut