BUG/MEDIUM: stick-table: fix regression caused by a change in proxy struct

In commit 1b8e68e ("MEDIUM: stick-table: Stop handling stick-tables as
proxies."), the ->table member of proxy struct was replaced by a pointer
that is not always checked and in some situations can cause a segfault,
eg. during reload or while using "show table" on CLI socket.

No backport is needed.
diff --git a/src/cfgparse.c b/src/cfgparse.c
index b0d1f5d..3188d50 100644
--- a/src/cfgparse.c
+++ b/src/cfgparse.c
@@ -2320,8 +2320,10 @@
 		if (curproxy->state == PR_STSTOPPED) {
 			/* ensure we don't keep listeners uselessly bound */
 			stop_proxy(curproxy);
-			free((void *)curproxy->table->peers.name);
-			curproxy->table->peers.p = NULL;
+			if (curproxy->table) {
+				free((void *)curproxy->table->peers.name);
+				curproxy->table->peers.p = NULL;
+			}
 			continue;
 		}
 
diff --git a/src/haproxy.c b/src/haproxy.c
index 33f2e9d..f709224 100644
--- a/src/haproxy.c
+++ b/src/haproxy.c
@@ -2367,7 +2367,8 @@
 
 		pool_destroy(p->req_cap_pool);
 		pool_destroy(p->rsp_cap_pool);
-		pool_destroy(p->table->pool);
+		if (p->table)
+			pool_destroy(p->table->pool);
 
 		p0 = p;
 		p = p->next;
diff --git a/src/stick_table.c b/src/stick_table.c
index d7e1eb8..1263ca4 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -3588,7 +3588,8 @@
 		return 1;
 	}
 
-	if (!((struct proxy *)appctx->ctx.table.target)->table->data_ofs[appctx->ctx.table.data_type]) {
+	if (!((struct proxy *)appctx->ctx.table.target)->table ||
+	    !((struct proxy *)appctx->ctx.table.target)->table->data_ofs[appctx->ctx.table.data_type]) {
 		appctx->ctx.cli.severity = LOG_ERR;
 		appctx->ctx.cli.msg = "Data type not stored in this table\n";
 		appctx->st0 = CLI_ST_PRINT;