Move all to deprecated folder.
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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>
|
||||
---
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user