diff options
author | Alan Antonuk <alan.antonuk@gmail.com> | 2016-03-08 19:37:23 -0800 |
---|---|---|
committer | Alan Antonuk <alan.antonuk@gmail.com> | 2016-04-09 20:23:06 -0700 |
commit | 7b8f37217ff53207e429667fcd3a721ccb1a9dde (patch) | |
tree | ac5da4a5c15b352baabe23ee850dfee59e313055 | |
parent | 11a2241043ab03cea654c2c503e5760b710570ce (diff) | |
download | rabbitmq-c-7b8f37217ff53207e429667fcd3a721ccb1a9dde.tar.gz |
Lib: correct sign conversion issue in amqp_url.c
-rw-r--r-- | librabbitmq/amqp_url.c | 5 |
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; } |