summaryrefslogtreecommitdiff
path: root/src/sexp.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-09-07 10:06:46 +0200
committerWerner Koch <wk@gnupg.org>2013-09-19 16:43:33 +0200
commitb3f3d47d347c14ed41d755cee580f000309b9c03 (patch)
tree0fc18486766081315eae0ba21cce51d28e916eb5 /src/sexp.c
parent071f70b9a766187fc70f6abc6a69d50752449285 (diff)
downloadlibgcrypt-b3f3d47d347c14ed41d755cee580f000309b9c03.tar.gz
sexp: Improve printing data representing a negative number.
* src/sexp.c (suitable_encoding): Detect a negative number. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src/sexp.c')
-rw-r--r--src/sexp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/sexp.c b/src/sexp.c
index d8812c7e..882ee528 100644
--- a/src/sexp.c
+++ b/src/sexp.c
@@ -1722,6 +1722,10 @@ suitable_encoding (const unsigned char *buffer, size_t length)
if (!length)
return 1;
+ if (*buffer & 0x80)
+ return 0; /* If the MSB is set we assume that buffer represents a
+ negative number. */
+
for (s=buffer; length; s++, length--)
{
if ( (*s < 0x20 || (*s >= 0x7f && *s <= 0xa0))