Polish VRY_Finish()

Assert on the return value of VRY_Validate() and call it only once.
(I would like to think that we can trust memcpy())
parent c5e06d6c
......@@ -259,6 +259,7 @@ void
VRY_Finish(struct req *req, enum vry_finish_flag flg)
{
uint8_t *p = NULL;
size_t l;
if (req->vary_b + 2 >= req->vary_e) {
AZ(req->vary_l);
......@@ -269,13 +270,12 @@ VRY_Finish(struct req *req, enum vry_finish_flag flg)
return;
}
(void)VRY_Validate(req->vary_b);
l = VRY_Validate(req->vary_b);
if (flg == KEEP && req->vary_l != NULL) {
p = malloc(req->vary_l - req->vary_b);
if (p != NULL) {
memcpy(p, req->vary_b, req->vary_l - req->vary_b);
(void)VRY_Validate(p);
}
assert(l == req->vary_l - req->vary_b);
p = malloc(l);
if (p != NULL)
memcpy(p, req->vary_b, l);
}
WS_Release(req->ws, 0);
req->vary_l = NULL;
......
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