Skip to content

Commit 021adc5

Browse files
committed
PYTHON-2191 Fix double free when realloc fails in buffer_grow
1 parent 24e8aeb commit 021adc5

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

bson/buffer.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,10 @@ int buffer_free(buffer_t buffer) {
5353
if (buffer == NULL) {
5454
return 1;
5555
}
56-
free(buffer->buffer);
56+
/* Buffer will be NULL when buffer_grow fails. */
57+
if (buffer->buffer != NULL) {
58+
free(buffer->buffer);
59+
}
5760
free(buffer);
5861
return 0;
5962
}
@@ -79,7 +82,6 @@ static int buffer_grow(buffer_t buffer, int min_length) {
7982
buffer->buffer = (char*)realloc(buffer->buffer, sizeof(char) * size);
8083
if (buffer->buffer == NULL) {
8184
free(old_buffer);
82-
free(buffer);
8385
return 1;
8486
}
8587
buffer->size = size;

0 commit comments

Comments
 (0)