]> git.proxmox.com Git - libgit2.git/commitdiff
buffer: fix `ENSURE_SIZE` macro referencing wrong variable
authorPatrick Steinhardt <ps@pks.im>
Thu, 8 Jun 2017 09:52:32 +0000 (11:52 +0200)
committerPatrick Steinhardt <ps@pks.im>
Thu, 8 Jun 2017 09:58:22 +0000 (11:58 +0200)
While the `ENSURE_SIZE` macro gets a reference to both the buffer that
is to be resized and a new size, we were not consistently referencing
the passed buffer, but instead a variable `buf`, which is not passed in.
Funnily enough, we never noticed because our buffers seem to always be
named `buf` whenever the macro was being used.

Fix the macro by always using the passed-in buffer. While at it, add
braces around all mentions of passed-in variables as should be done with
macros to avoid subtle errors.

Found-by: Edward Thompson
src/buffer.c

index fdb732d9e404fe4aec5eb86d2db97e638a7d14d6..ba8bd82d04eedc8366fd1ff53b6aaa77e8ab3fe7 100644 (file)
@@ -18,7 +18,7 @@ char git_buf__initbuf[1];
 char git_buf__oom[1];
 
 #define ENSURE_SIZE(b, d) \
-       if ((d) > buf->asize && git_buf_grow(b, (d)) < 0)\
+       if ((d) > (b)->asize && git_buf_grow((b), (d)) < 0)\
                return -1;