-/* $OpenBSD: sshbuf.c,v 1.15 2020/02/26 13:40:09 jsg Exp $ */
+/* $OpenBSD: sshbuf.c,v 1.16 2022/04/08 04:40:40 djm Exp $ */
/*
* Copyright (c) 2011 Damien Miller
*
if ((r = sshbuf_check_sanity(child)) != 0 ||
(r = sshbuf_check_sanity(parent)) != 0)
return r;
+ if (child->parent != NULL && child->parent != parent)
+ return SSH_ERR_INTERNAL_ERROR;
child->parent = parent;
child->parent->refcount++;
return 0;
buf->off = buf->size;
return;
}
- (void) sshbuf_check_sanity(buf);
+ if (sshbuf_check_sanity(buf) != 0)
+ return;
buf->off = buf->size = 0;
if (buf->alloc != SSHBUF_SIZE_INIT) {
if ((d = recallocarray(buf->d, buf->alloc, SSHBUF_SIZE_INIT,
buf->alloc = SSHBUF_SIZE_INIT;
}
}
- explicit_bzero(buf->d, SSHBUF_SIZE_INIT);
+ explicit_bzero(buf->d, buf->alloc);
}
size_t