提交 2d1e0ae2 authored 作者: Shane Bryldt's avatar Shane Bryldt

FS-9766: Added 1 byte to ben_encode output and terminates output

上级 3ddaf0f2
...@@ -1667,7 +1667,7 @@ size_t ben_encoded_size(const struct bencode *b) ...@@ -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) ...@@ -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;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论