Merge pull request #1072 in FS/freeswitch from ~SBRYLDT/freeswitch:bugfix/FS-9766-ben_encode-does-not-terminate-output to master

* commit '2d1e0ae27545cd84a702b21c93e194e3c93e306e':
  FS-9766: Added 1 byte to ben_encode output and terminates output
This commit is contained in:
Mike Jerris 2016-11-23 13:53:33 -06:00
commit d6f3b7dbb4
1 changed files with 2 additions and 1 deletions

View File

@ -1667,7 +1667,7 @@ size_t ben_encoded_size(const struct bencode *b)
void *ben_encode(size_t *len, const struct bencode *b) void *ben_encode(size_t *len, const struct bencode *b)
{ {
size_t size = get_size(b); size_t size = get_size(b);
void *data = malloc(size); void *data = malloc(size + 1);
struct ben_encode_ctx ctx = {.data = data, .size = size}; struct ben_encode_ctx ctx = {.data = data, .size = size};
if (data == NULL) { if (data == NULL) {
//warn("No memory to encode\n"); //warn("No memory to encode\n");
@ -1678,6 +1678,7 @@ void *ben_encode(size_t *len, const struct bencode *b)
return NULL; return NULL;
} }
assert(ctx.pos == size); assert(ctx.pos == size);
ctx.data[size] = '\0';
*len = ctx.pos; *len = ctx.pos;
return data; return data;
} }