Corinna Vinschen
2013-Dec-07 11:33 UTC
Potential crash due to missing declaration of strerror
Hi, I've just stumbled over this gcc warning while building OpenSSH: openbsd-compat/bsd-setres_id.c:41:3: warning: implicit declaration of function ?strerror? [-Wimplicit-function-declaration] error("setregid %u: %.100s", rgid, strerror(errno)); ^ openbsd-compat/bsd-setres_id.c:41:3: warning: format ?%s? expects argument of type ?char *?, but argument 3 has type ?int? [-Wformat=] This almost certainly results in a crash on systems with sizeof(char*) > sizeof(int), like on practically all 64 bit systems. This simple patch fixes it: Index: openbsd-compat/bsd-setres_id.c ==================================================================RCS file: /cvs/openssh/openbsd-compat/bsd-setres_id.c,v retrieving revision 1.1 diff -u -p -r1.1 bsd-setres_id.c --- openbsd-compat/bsd-setres_id.c 5 Nov 2012 06:04:37 -0000 1.1 +++ openbsd-compat/bsd-setres_id.c 7 Dec 2013 10:57:31 -0000 @@ -22,6 +22,7 @@ #include <stdarg.h> #include <unistd.h> +#include <string.h> #include "log.h" Hope that helps, Corinna -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 836 bytes Desc: not available URL: <http://lists.mindrot.org/pipermail/openssh-unix-dev/attachments/20131207/75660104/attachment.bin>
Damien Miller
2013-Dec-07 21:23 UTC
Potential crash due to missing declaration of strerror
applied - thanks. On Sat, 7 Dec 2013, Corinna Vinschen wrote:> Hi, > > I've just stumbled over this gcc warning while building OpenSSH: > > openbsd-compat/bsd-setres_id.c:41:3: warning: implicit declaration of function ?strerror? [-Wimplicit-function-declaration] > error("setregid %u: %.100s", rgid, strerror(errno)); > ^ > openbsd-compat/bsd-setres_id.c:41:3: warning: format ?%s? expects argument of type ?char *?, but argument 3 has type ?int? [-Wformat=] > > This almost certainly results in a crash on systems with > sizeof(char*) > sizeof(int), like on practically all 64 bit systems. > > This simple patch fixes it: > > Index: openbsd-compat/bsd-setres_id.c > ==================================================================> RCS file: /cvs/openssh/openbsd-compat/bsd-setres_id.c,v > retrieving revision 1.1 > diff -u -p -r1.1 bsd-setres_id.c > --- openbsd-compat/bsd-setres_id.c 5 Nov 2012 06:04:37 -0000 1.1 > +++ openbsd-compat/bsd-setres_id.c 7 Dec 2013 10:57:31 -0000 > @@ -22,6 +22,7 @@ > > #include <stdarg.h> > #include <unistd.h> > +#include <string.h> > > #include "log.h" > > > Hope that helps, > Corinna >