MINOR: httpclient: destroy checks if a client was started but not stopped
During httpclient_destroy, add a condition in the BUG_ON which checks
that the client was started before it has ended. A httpclient structure
could have been created without being started.
diff --git a/include/haproxy/http_client.h b/include/haproxy/http_client.h
index c0d5447..097997e 100644
--- a/include/haproxy/http_client.h
+++ b/include/haproxy/http_client.h
@@ -24,4 +24,11 @@
return !!(hc->flags & HTTPCLIENT_FS_ENDED);
}
+/* Return 1 if the httpclient started */
+static inline int httpclient_started(struct httpclient *hc)
+{
+
+ return !!(hc->flags & HTTPCLIENT_FS_STARTED);
+}
+
#endif /* ! _HAPROXY_HTTCLIENT_H */
diff --git a/src/http_client.c b/src/http_client.c
index 1eb3cd1..d0a1005 100644
--- a/src/http_client.c
+++ b/src/http_client.c
@@ -438,8 +438,8 @@
if (!hc)
return;
- /* we should never destroy a client which was not stopped */
- BUG_ON(!httpclient_ended(hc));
+ /* we should never destroy a client which was started but not stopped */
+ BUG_ON(httpclient_started(hc) && !httpclient_ended(hc));
/* request */
istfree(&hc->req.url);