summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Antonuk <alan.antonuk@gmail.com>2016-03-08 19:37:23 -0800
committerAlan Antonuk <alan.antonuk@gmail.com>2016-04-09 20:23:06 -0700
commit7b8f37217ff53207e429667fcd3a721ccb1a9dde (patch)
treeac5da4a5c15b352baabe23ee850dfee59e313055
parent11a2241043ab03cea654c2c503e5760b710570ce (diff)
downloadrabbitmq-c-7b8f37217ff53207e429667fcd3a721ccb1a9dde.tar.gz
Lib: correct sign conversion issue in amqp_url.c
-rw-r--r--librabbitmq/amqp_url.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/librabbitmq/amqp_url.c b/librabbitmq/amqp_url.c
index 636a9de..6079106 100644
--- a/librabbitmq/amqp_url.c
+++ b/librabbitmq/amqp_url.c
@@ -43,6 +43,7 @@
#endif
#include "amqp_private.h"
+#include <limits.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
@@ -92,14 +93,14 @@ static char find_delim(char **pp, int colon_and_at_sign_are_delims)
int chars;
int res = sscanf(from, "%2x%n", &val, &chars);
- if (res == EOF || res < 1 || chars != 2)
+ if (res == EOF || res < 1 || chars != 2 || val > CHAR_MAX)
/* Return a surprising delimiter to
force an error. */
{
return '%';
}
- *to++ = val;
+ *to++ = (char)val;
from += 2;
break;
}