diff --git a/src/encode.c b/src/encode.c index 3296f70523e5cb33494be3fd2e1c4d254123e372..b581b83cf54b9778b363bdd65ecacb95ca45cff6 100644 --- a/src/encode.c +++ b/src/encode.c @@ -437,7 +437,11 @@ static void decode_value2(struct decode_data *data) case T_MAPPING: { - struct mapping *m=allocate_mapping(num); + struct mapping *m; + if(num<0) + error("Failed to decode string. (mapping size is negative)\n"); + + m=allocate_mapping(num); tmp.type=T_MAPPING; tmp.u.mapping=m; mapping_insert(data->decoded, & data->counter, &tmp);