chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
malloc(0)->0 fixes.
[adns]
/
src
/
general.c
diff --git
a/src/general.c
b/src/general.c
index 2ced4c06b6c35a390bdc49924613730b58b46664..9db4bb4cbc7b9881755c97694d9d9bdc71236fa4 100644
(file)
--- a/
src/general.c
+++ b/
src/general.c
@@
-111,9
+111,10
@@
int adns__vbuf_append(vbuf *vb, const byte *data, int len) {
newlen= vb->used+len;
if (vb->avail < newlen) {
newlen= vb->used+len;
if (vb->avail < newlen) {
+ if (newlen<20) newlen= 20;
newlen <<= 1;
nb= realloc(vb->buf,newlen);
newlen <<= 1;
nb= realloc(vb->buf,newlen);
- if (!nb) { newlen
>>= 1
; nb= realloc(vb->buf,newlen); }
+ if (!nb) { newlen
= vb->used+len
; nb= realloc(vb->buf,newlen); }
if (!nb) return 0;
vb->buf= nb;
vb->avail= newlen;
if (!nb) return 0;
vb->buf= nb;
vb->avail= newlen;
@@
-122,6
+123,11
@@
int adns__vbuf_append(vbuf *vb, const byte *data, int len) {
return 1;
}
return 1;
}
+void adns__vbuf_free(vbuf *vb) {
+ free(vb->buf);
+ adns__vbuf_init(vb);
+}
+
/* Additional diagnostic functions */
const char *adns__diag_domain(adns_state ads, int serv, adns_query qu, vbuf *vb,
/* Additional diagnostic functions */
const char *adns__diag_domain(adns_state ads, int serv, adns_query qu, vbuf *vb,