diff --git a/src/http_fetch.c b/src/http_fetch.c
index 1b4bc0a..0b16c51 100644
--- a/src/http_fetch.c
+++ b/src/http_fetch.c
@@ -1073,6 +1073,8 @@
 	struct http_txn *txn;
 	struct sockaddr_storage addr;
 
+	memset(&addr, 0, sizeof(addr));
+
 	if (smp->px->options2 & PR_O2_USE_HTX) {
 		/* HTX version */
 		struct htx *htx = smp_prefetch_htx(smp, chn, 1);
@@ -1081,14 +1083,16 @@
 		if (!htx)
 			return 0;
 		sl = http_get_stline(htx);
-		url2sa(HTX_SL_REQ_UPTR(sl), HTX_SL_REQ_ULEN(sl), &addr, NULL);
+		if (url2sa(HTX_SL_REQ_UPTR(sl), HTX_SL_REQ_ULEN(sl), &addr, NULL) < 0)
+			return 0;
 	}
 	else {
 		/* LEGACY version */
 		CHECK_HTTP_MESSAGE_FIRST(chn);
 
 		txn = smp->strm->txn;
-		url2sa(ci_head(chn) + txn->req.sl.rq.u, txn->req.sl.rq.u_l, &addr, NULL);
+		if (url2sa(ci_head(chn) + txn->req.sl.rq.u, txn->req.sl.rq.u_l, &addr, NULL) < 0)
+			return 0;
 	}
 
 	if (((struct sockaddr_in *)&addr)->sin_family != AF_INET)
@@ -1106,6 +1110,8 @@
 	struct http_txn *txn;
 	struct sockaddr_storage addr;
 
+	memset(&addr, 0, sizeof(addr));
+
 	if (smp->px->options2 & PR_O2_USE_HTX) {
 		/* HTX version */
 		struct htx *htx = smp_prefetch_htx(smp, chn, 1);
@@ -1114,14 +1120,16 @@
 		if (!htx)
 			return 0;
 		sl = http_get_stline(htx);
-		url2sa(HTX_SL_REQ_UPTR(sl), HTX_SL_REQ_ULEN(sl), &addr, NULL);
+		if (url2sa(HTX_SL_REQ_UPTR(sl), HTX_SL_REQ_ULEN(sl), &addr, NULL) < 0)
+			return 0;
 	}
 	else {
 		/* LEGACY version */
 		CHECK_HTTP_MESSAGE_FIRST(chn);
 
 		txn = smp->strm->txn;
-		url2sa(ci_head(chn) + txn->req.sl.rq.u, txn->req.sl.rq.u_l, &addr, NULL);
+		if (url2sa(ci_head(chn) + txn->req.sl.rq.u, txn->req.sl.rq.u_l, &addr, NULL) < 0)
+			return 0;
 	}
 	if (((struct sockaddr_in *)&addr)->sin_family != AF_INET)
 		return 0;
