Commit b4409ac7 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Make vsb_new() a tad easier for FlexeLint to figure out.

Give it proper semantics



git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@3496 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 1f00b070
......@@ -56,13 +56,12 @@
-emacro(702, WEXITSTATUS) // signed shift right
-efunc(525, VCC_Return_Name) // Negative indent
// -header(../../config.h)
// Fix strchr() semtics, it can only return NULL if arg2 != 0
-sem(strchr, 1p, type(1), 2n == 0 ? (@p < 1p) : (@p < 1p || @p == 0 ))
-sem(vsb_new, @p == malloc(1))
-sem(vsb_new, @p == (1p ? 1p : malloc(1)))
-sem(vsb_delete, custodial(1))
-sem(lbv_assert, r_no)
-sem(lbv_xxxassert, r_no)
......
......@@ -162,15 +162,17 @@ vsb_new(struct vsb *s, char *buf, int length, int flags)
s = (struct vsb *)SBMALLOC(sizeof *s);
if (s == NULL)
return (NULL);
memset(s, 0, sizeof *s);
s->s_flags = flags;
s->s_magic = VSB_MAGIC;
if (vsb_new(s, buf, length, flags) == NULL) {
free(s);
return (NULL);
}
VSB_SETFLAG(s, VSB_DYNSTRUCT);
} else {
memset(s, 0, sizeof *s);
s->s_flags = flags;
s->s_magic = VSB_MAGIC;
return (s);
}
memset(s, 0, sizeof *s);
s->s_flags = flags;
s->s_magic = VSB_MAGIC;
s->s_size = length;
if (buf) {
s->s_buf = buf;
......@@ -179,11 +181,8 @@ vsb_new(struct vsb *s, char *buf, int length, int flags)
if (flags & VSB_AUTOEXTEND)
s->s_size = vsb_extendsize(s->s_size);
s->s_buf = (char *)SBMALLOC(s->s_size);
if (s->s_buf == NULL) {
if (VSB_ISDYNSTRUCT(s))
SBFREE(s);
if (s->s_buf == NULL)
return (NULL);
}
VSB_SETFLAG(s, VSB_DYNAMIC);
return (s);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment