Add the trailing '\0' to lzma_extra.data as the API header
authorLasse Collin <lasse.collin@tukaani.org>
Wed, 23 Jan 2008 20:02:38 +0000 (22:02 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Wed, 23 Jan 2008 20:02:38 +0000 (22:02 +0200)
already documents.

src/liblzma/common/metadata_decoder.c

index 356a9e3..298a424 100644 (file)
@@ -366,7 +366,8 @@ process(lzma_coder *coder, lzma_allocator *allocator)
                coder->extra_tail->size = (size_t)(coder->tmp);
                coder->tmp = 0;
 
-               uint8_t *d = lzma_alloc((size_t)(coder->extra_tail->size),
+               // We reserve space for the trailing '\0' too.
+               uint8_t *d = lzma_alloc((size_t)(coder->extra_tail->size) + 1,
                                allocator);
                if (d == NULL)
                        return LZMA_MEM_ERROR;
@@ -383,6 +384,7 @@ process(lzma_coder *coder, lzma_allocator *allocator)
                                (size_t)(coder->extra_tail->size));
 
                if ((size_t)(coder->extra_tail->size) == coder->pos) {
+                       coder->extra_tail->data[coder->pos] = '\0';
                        coder->pos = 0;
                        coder->todo_count = 0;
                        coder->sequence = SEQ_EXTRA_ALLOC;