[5.2] c1e6397 Slap a magic number in struct VUT

PÃ¥l Hermunn Johansen hermunn at varnish-software.com
Fri Sep 15 11:17:27 UTC 2017


commit c1e639709306e8c1b2210924913712b781faa3cb
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Tue Sep 12 00:04:27 2017 +0200

    Slap a magic number in struct VUT

diff --git a/bin/varnishlog/varnishlog.c b/bin/varnishlog/varnishlog.c
index 60f46f9..bc0c352 100644
--- a/bin/varnishlog/varnishlog.c
+++ b/bin/varnishlog/varnishlog.c
@@ -122,7 +122,7 @@ sighup(struct VUT *v)
 static void
 vut_sighandler(int sig)
 {
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	VUT_Signaled(vut, sig);
 }
 
diff --git a/bin/varnishncsa/varnishncsa.c b/bin/varnishncsa/varnishncsa.c
index 979e598..18eec35 100644
--- a/bin/varnishncsa/varnishncsa.c
+++ b/bin/varnishncsa/varnishncsa.c
@@ -1117,7 +1117,7 @@ sighup(struct VUT *v)
 static void
 vut_sighandler(int sig)
 {
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	VUT_Signaled(vut, sig);
 }
 
diff --git a/bin/varnishtop/varnishtop.c b/bin/varnishtop/varnishtop.c
index 09d939f..1282806 100644
--- a/bin/varnishtop/varnishtop.c
+++ b/bin/varnishtop/varnishtop.c
@@ -45,6 +45,7 @@
 #define VOPT_DEFINITION
 #define VOPT_INC "varnishtop_options.h"
 
+#include "miniobj.h"
 #include "vcurses.h"
 #include "vapi/vsl.h"
 #include "vapi/vsm.h"
@@ -190,7 +191,7 @@ sighup(struct VUT *v)
 static void
 vut_sighandler(int sig)
 {
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	VUT_Signaled(vut, sig);
 }
 
diff --git a/include/vut.h b/include/vut.h
index 1097700..0d731cf 100644
--- a/include/vut.h
+++ b/include/vut.h
@@ -37,6 +37,8 @@ typedef int VUT_cb_f(struct VUT *);
 typedef void VUT_error_f(struct VUT *, int, const char *, va_list);
 
 struct VUT {
+	unsigned	magic;
+#define VUT_MAGIC	0xdf3b3de8
 	const char	*progname;
 
 	/* Options */
diff --git a/lib/libvarnishapi/vut.c b/lib/libvarnishapi/vut.c
index fe8e815..9845470 100644
--- a/lib/libvarnishapi/vut.c
+++ b/lib/libvarnishapi/vut.c
@@ -87,8 +87,8 @@ vut_dispatch(struct VSL_data *vsl, struct VSL_transaction * const trans[],
 	struct VUT *vut;
 	int i;
 
-	vut = priv;
-	AN(vut);
+	CAST_OBJ_NOTNULL(vut, priv, VUT_MAGIC);
+
 	if (vut->k_arg == 0)
 		return (-1);	/* End of file */
 	AN(vut->dispatch_f);
@@ -105,7 +105,7 @@ static void __attribute__((__noreturn__)) __match_proto__(VUT_error_f)
 vut_error(struct VUT *vut, int status, const char *fmt, va_list ap)
 {
 
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	AN(fmt);
 	vfprintf(stderr, fmt, ap);
 	fprintf(stderr, "\n");
@@ -202,7 +202,7 @@ VUT_Init(const char *progname, int argc, char * const *argv,
 	AN(argv);
 	AN(voc);
 
-	vut = calloc(1, sizeof *vut);
+	ALLOC_OBJ(vut, VUT_MAGIC);
 	AN(vut);
 
 	if (argc == 2 && !strcmp(argv[1], "--synopsis"))
@@ -235,7 +235,7 @@ void
 VUT_Signaled(struct VUT *vut, int sig)
 {
 
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	vut->sighup |= (sig == SIGHUP);
 	vut->sigint |= (sig == SIGINT || sig == SIGTERM);
 	vut->sigusr1 |= (sig == SIGUSR1);
@@ -246,7 +246,7 @@ VUT_Setup(struct VUT *vut)
 {
 	struct VSL_cursor *c;
 
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	AN(vut->vsl);
 	AZ(vut->vsm);
 	AZ(vut->vslq);
@@ -307,11 +307,7 @@ VUT_Fini(struct VUT **vutp)
 {
 	struct VUT *vut;
 
-	AN(vutp);
-	vut = *vutp;
-	*vutp = NULL;
-
-	AN(vut);
+	TAKE_OBJ_NOTNULL(vut, vutp, VUT_MAGIC);
 	AN(vut->progname);
 
 	free(vut->n_arg);
@@ -331,7 +327,7 @@ VUT_Fini(struct VUT **vutp)
 		VSM_Destroy(&vut->vsm);
 
 	memset(vut, 0, sizeof *vut);
-	free(vut);
+	FREE_OBJ(vut);
 }
 
 int
@@ -341,7 +337,7 @@ VUT_Main(struct VUT *vut)
 	int i = -1;
 	int hascursor = -1;
 
-	AN(vut);
+	CHECK_OBJ_NOTNULL(vut, VUT_MAGIC);
 	AN(vut->vslq);
 
 	while (!vut->sigint) {


More information about the varnish-commit mailing list