> Here's the relevant bit of code with a check to diagnose:
> void varbuf_add_buf(struct varbuf *v, const void *s, size_t size)
> {
>   varbuf_grow(v, size);
> + if(v->buf + v->used == NULL) {
> +     puts((size == 0) ? "size is zero" : "size is not zero");
> + }
>   memcpy(v->buf + v->used, s, size);
>   v->used += size;
> }
> This prints "size is zero",

By the way one gets different behavior with if(v->buf + v->used == NULL)
vs. if(v->buf + v->used) even on uninstrumented binaries. With the latter
I get a bunch of lines like
size is not zero
size is not zero
size is not zero
...
and then later it alternates:
size is zero
size is not zero
size is zero
size is not zero
...

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to