BUG/MAJOR: b_rew() must pass a signed offset to b_ptr()

Commit 13e66da introduced b_rew() but passes -adv which is an unsigned
quantity on 64-bit platforms, causing the buffer to advance in the wrong
direction.

No backport is needed.
This commit is contained in:
Willy Tarreau 2012-05-31 11:33:42 +02:00
parent cde18fc1ba
commit ab152a7eda

View File

@ -313,7 +313,7 @@ static inline void b_rew(struct buffer *b, unsigned int adv)
b->o -= adv;
if (!b->o && !b->pipe)
b->flags |= BF_OUT_EMPTY;
b->p = b_ptr(b, -adv);
b->p = b_ptr(b, (int)-adv);
}
/* Return the amount of bytes that can be written into the buffer at once,