[6.2] bb3a1e362 Fix WS_ReserveSize calls when bytes is equal to free workspace
    Martin Blix Grydeland 
    martin at varnish-software.com
       
    Tue Feb  4 10:03:09 UTC 2020
    
    
  
commit bb3a1e362393ed78a9f55c1de32d58c6f2846420
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date:   Mon Dec 16 16:37:27 2019 +0100
    Fix WS_ReserveSize calls when bytes is equal to free workspace
    
    Currently, with the 505b7bd9643006fa8e3977f920564ce12a2b24a2 patch, when
    calling WS_ReserveSize with bytes equal to the amount of workspace that is
    currently available, it will return zero and mark overflow.
    
    This patch redoes the patch, and changes it to return zero and overflow
    only when the requested number of bytes is larger than what is available.
diff --git a/bin/varnishd/cache/cache_ws.c b/bin/varnishd/cache/cache_ws.c
index de04e896d..5de7a6830 100644
--- a/bin/varnishd/cache/cache_ws.c
+++ b/bin/varnishd/cache/cache_ws.c
@@ -263,7 +263,7 @@ WS_ReserveSize(struct ws *ws, unsigned bytes)
 	if (bytes < b2)
 		b2 = PRNDUP(bytes);
 
-	if (ws->f + b2 >= ws->e) {
+	if (bytes > b2) {
 		WS_MarkOverflow(ws);
 		return (0);
 	}
    
    
More information about the varnish-commit
mailing list