Mailing List Archive

[master] 7fb01bdfb http2_proto: Proper null checks for h2 errors
commit 7fb01bdfbed10f4b8a1042d9578228385000d9cf
Author: Dridi Boukelmoune <dridi.boukelmoune@gmail.com>
Date: Mon Oct 23 11:34:31 2023 +0200

http2_proto: Proper null checks for h2 errors

diff --git a/bin/varnishd/http2/cache_http2_proto.c b/bin/varnishd/http2/cache_http2_proto.c
index 52a1c2121..58e67ecef 100644
--- a/bin/varnishd/http2/cache_http2_proto.c
+++ b/bin/varnishd/http2/cache_http2_proto.c
@@ -837,11 +837,11 @@ h2_rx_data(struct worker *wrk, struct h2_sess *h2, struct h2_req *r2)
Lck_Lock(&h2->sess->mtx);
CHECK_OBJ_ORNULL(r2->rxbuf, H2_RXBUF_MAGIC);

- if (h2->error || r2->error) {
+ if (h2->error != NULL || r2->error != NULL) {
if (r2->cond)
PTOK(pthread_cond_signal(r2->cond));
Lck_Unlock(&h2->sess->mtx);
- return (h2->error ? h2->error : r2->error);
+ return (h2->error != NULL ? h2->error : r2->error);
}

/* Check padding if present */
@@ -1078,7 +1078,7 @@ h2_vfp_body(struct vfp_ctx *vc, struct vfp_entry *vfe, void *ptr, ssize_t *lp)
} else
l = 0;

- if (h2->error || r2->error)
+ if (h2->error != NULL || r2->error != NULL)
retval = VFP_ERROR;
else if (r2->state >= H2_S_CLOS_REM && l <= *lp)
retval = VFP_END;
@@ -1274,15 +1274,15 @@ h2_procframe(struct worker *wrk, struct h2_sess *h2, h2_frame h2f)
return (H2CE_PROTOCOL_ERROR); // rfc7540,l,1859,1863

h2e = h2f->rxfunc(wrk, h2, r2);
- if (h2e == 0)
- return (0);
+ if (h2e == NULL)
+ return (NULL);
if (h2->rxf_stream == 0 || h2e->connection)
return (h2e); // Connection errors one level up

H2_Send_Get(wrk, h2, h2->req0);
H2_Send_RST(wrk, h2, h2->req0, h2->rxf_stream, h2e);
H2_Send_Rel(h2, h2->req0);
- return (0);
+ return (NULL);
}

int
@@ -1489,7 +1489,7 @@ h2_rxframe(struct worker *wrk, struct h2_sess *h2)
}

h2e = h2_procframe(wrk, h2, h2f);
- if (h2->error == 0 && h2e) {
+ if (h2->error == NULL && h2e != NULL) {
h2->error = h2e;
vbe32enc(b, h2->highest_stream);
vbe32enc(b + 4, h2e->val);
@@ -1497,5 +1497,6 @@ h2_rxframe(struct worker *wrk, struct h2_sess *h2)
H2_Send_Frame(wrk, h2, H2_F_GOAWAY, 0, 8, 0, b);
H2_Send_Rel(h2, h2->req0);
}
- return (h2->error ? 0 : 1);
+
+ return (h2->error != NULL ? 0 : 1);
}
_______________________________________________
varnish-commit mailing list
varnish-commit@varnish-cache.org
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit