Files
poky/meta/recipes-support/argp-standalone/files/0002-isprint.patch
Khem Raj 1a6fe71e7e argp-standalone: Add recipe
This helps packages like gnutls to compile with musl
any package that needs glibc's implementation of argp
can link to this library

(From OE-Core rev: d2bb8bb1406ef1ca53539912a463bd518211110a)

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-01-24 09:40:26 +00:00

52 lines
1.3 KiB
Diff

Subject: restrict value range passed to isprint function
According to C standards isprint argument shall be representable as an
unsigned char or be equal to EOF, otherwise the behaviour is undefined.
Passing arbitrary ints leads to segfault in nm program from elfutils.
Restrict isprint argument range to values representable by unsigned char.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Taken from buildroot
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Index: b/argp.h
===================================================================
--- a/argp.h
+++ b/argp.h
@@ -23,6 +23,7 @@
#include <stdio.h>
#include <ctype.h>
+#include <limits.h>
#define __need_error_t
#include <errno.h>
@@ -577,7 +578,7 @@
else
{
int __key = __opt->key;
- return __key > 0 && isprint (__key);
+ return __key > 0 && __key <= UCHAR_MAX && isprint (__key);
}
}
Index: b/argp-parse.c
===================================================================
--- a/argp-parse.c
+++ b/argp-parse.c
@@ -1292,7 +1292,7 @@
int __key = __opt->key;
/* FIXME: whether or not a particular key implies a short option
* ought not to be locale dependent. */
- return __key > 0 && isprint (__key);
+ return __key > 0 && __key <= UCHAR_MAX && isprint (__key);
}
}