]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: halog: Add OOM checks for calloc() in filter_count_srv_status() and filter...
authorAlexander Stephan <alexander.stephan@sap.com>
Mon, 1 Sep 2025 09:32:04 +0000 (09:32 +0000)
committerWilly Tarreau <w@1wt.eu>
Tue, 2 Sep 2025 05:29:54 +0000 (07:29 +0200)
This patch adds missing out-of-memory (OOM) checks after calls to
calloc() in the functions `filter_count_srv_status()` and `filter_count_url()`.
If memory allocation fails, an error message is printed to stderr
and the process exits with status 1. This improves robustness
and prevents undefined behavior in low-memory situations.

Co-authored-by: Christian Norbert Menges <christian.norbert.menges@sap.com>
admin/halog/halog.c

index 3d8941140254e800fcdaa442a53232eafec1e4a0..bbed5b81f23e38d81a34484de713691d8e778ea0 100644 (file)
@@ -1571,6 +1571,10 @@ void filter_count_srv_status(const char *accept_field, const char *time_field, s
        if (!srv_node) {
                /* server not yet in the tree, let's create it */
                srv = (void *)calloc(1, sizeof(struct srv_st) + e - b + 1);
+               if (unlikely(!srv)) {
+                       fprintf(stderr, "%s: not enough memory\n", __FUNCTION__);
+                       exit(1);
+               }
                srv_node = &srv->node;
                memcpy(&srv_node->key, b, e - b);
                srv_node->key[e - b] = '\0';
@@ -1680,6 +1684,10 @@ void filter_count_url(const char *accept_field, const char *time_field, struct t
         */
        if (unlikely(!ustat))
                ustat = calloc(1, sizeof(*ustat));
+               if (unlikely(!ustat)) {
+                       fprintf(stderr, "%s: not enough memory\n", __FUNCTION__);
+                       exit(1);
+               }
 
        ustat->nb_err = err;
        ustat->nb_req = 1;