[master] f4d0280 Return early on failure

Poul-Henning Kamp phk at FreeBSD.org
Thu Nov 2 12:02:25 UTC 2017


commit f4d02803c5dfded27b446d39039dc02f02b3717c
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Nov 2 07:44:16 2017 +0000

    Return early on failure

diff --git a/lib/libvmod_vtc/vmod_vtc.c b/lib/libvmod_vtc/vmod_vtc.c
index 04e79c6..e8fbf61 100644
--- a/lib/libvmod_vtc/vmod_vtc.c
+++ b/lib/libvmod_vtc/vmod_vtc.c
@@ -145,6 +145,8 @@ vmod_workspace_alloc(VRT_CTX, VCL_ENUM which, VCL_INT size)
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
 
 	ws = vtc_ws_find(ctx, which);
+	if (ws == NULL)
+		return;
 	WS_Assert(ws);
 
 	if (size < 0) {
@@ -171,6 +173,8 @@ vmod_workspace_free(VRT_CTX, VCL_ENUM which)
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
 
 	ws = vtc_ws_find(ctx, which);
+	if (ws == NULL)
+		return(-1);
 	WS_Assert(ws);
 
 	u = WS_Reserve(ws, 0);
@@ -178,7 +182,7 @@ vmod_workspace_free(VRT_CTX, VCL_ENUM which)
 	return (u);
 }
 
-#define VTC_WS_OP(type, name, op)			\
+#define VTC_WS_OP(type, def, name, op)			\
 VCL_##type __match_proto__(td_vtc_workspace_##name)	\
 vmod_workspace_##name(VRT_CTX, VCL_ENUM which)		\
 {							\
@@ -187,14 +191,16 @@ vmod_workspace_##name(VRT_CTX, VCL_ENUM which)		\
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);		\
 							\
 	ws = vtc_ws_find(ctx, which);			\
+	if (ws == NULL)					\
+		return def ;				\
 	WS_Assert(ws);					\
 							\
 	op;						\
 }
-VTC_WS_OP(VOID, snapshot, (vtc_ws_snapshot = WS_Snapshot(ws)))
-VTC_WS_OP(VOID, reset, WS_Reset(ws, vtc_ws_snapshot))
-VTC_WS_OP(VOID, overflow, WS_MarkOverflow(ws))
-VTC_WS_OP(BOOL, overflowed, return (WS_Overflowed(ws)))
+VTC_WS_OP(VOID, , snapshot, (vtc_ws_snapshot = WS_Snapshot(ws)))
+VTC_WS_OP(VOID, , reset, WS_Reset(ws, vtc_ws_snapshot))
+VTC_WS_OP(VOID, , overflow, WS_MarkOverflow(ws))
+VTC_WS_OP(BOOL, (0), overflowed, return (WS_Overflowed(ws)))
 #undef VTC_WS_OP
 
 /*--------------------------------------------------------------------*/


More information about the varnish-commit mailing list