`sess_build_logline_orig()` takes a `size_t maxsize` as input and accordingly
should also return `size_t` instead of `int` as the resulting length. In
practice most of the callers already stored the result in a `size_t` anyways.
The few places that used an `int` were adjusted.

This Coccinelle patch was used to check for completeness:

    @@
    type T != size_t;
    T var;
    @@

    (
    * var = build_logline(...)
    |
    * var = build_logline_orig(...)
    |
    * var = sess_build_logline(...)
    |
    * var = sess_build_logline_orig(...)
    )

Reviewed-by: Volker Dusch <[email protected]>
---
 include/haproxy/log.h |  8 ++++----
 src/http_ana.c        |  6 +++---
 src/log.c             | 16 +++++++++-------
 3 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/include/haproxy/log.h b/include/haproxy/log.h
index 8a3651802..a635f8b07 100644
--- a/include/haproxy/log.h
+++ b/include/haproxy/log.h
@@ -97,11 +97,11 @@ static inline struct log_orig log_orig(enum log_orig_id id, 
uint16_t flags)
 }
 
 /* build a log line for the session and an optional stream */
-int sess_build_logline_orig(struct session *sess, struct stream *s, char *dst, 
size_t maxsize,
+size_t sess_build_logline_orig(struct session *sess, struct stream *s, char 
*dst, size_t maxsize,
                             struct lf_expr *lf_expr, struct log_orig orig);
 
 /* wrapper for sess_build_logline_orig(), uses LOG_ORIG_UNSPEC log origin */
-static inline int sess_build_logline(struct session *sess, struct stream *s, 
char *dst, size_t maxsize,
+static inline size_t sess_build_logline(struct session *sess, struct stream 
*s, char *dst, size_t maxsize,
                                      struct lf_expr *lf_expr)
 {
        return sess_build_logline_orig(sess, s, dst, maxsize, lf_expr,
@@ -199,7 +199,7 @@ char * get_format_pid_sep2(int format, size_t *len);
 /*
  * Builds a log line for the stream (must be valid).
  */
-static inline int build_logline_orig(struct stream *s, char *dst, size_t 
maxsize,
+static inline size_t build_logline_orig(struct stream *s, char *dst, size_t 
maxsize,
                                      struct lf_expr *lf_expr, struct log_orig 
orig)
 {
        return sess_build_logline_orig(strm_sess(s), s, dst, maxsize, lf_expr, 
orig);
@@ -208,7 +208,7 @@ static inline int build_logline_orig(struct stream *s, char 
*dst, size_t maxsize
 /*
  * Wrapper for build_logline_orig, uses LOG_ORIG_UNSPEC log origin
  */
-static inline int build_logline(struct stream *s, char *dst, size_t maxsize, 
struct lf_expr *lf_expr)
+static inline size_t build_logline(struct stream *s, char *dst, size_t 
maxsize, struct lf_expr *lf_expr)
 {
        return build_logline_orig(s, dst, maxsize, lf_expr,
                                  log_orig(LOG_ORIG_UNSPEC, LOG_ORIG_FL_NONE));
diff --git a/src/http_ana.c b/src/http_ana.c
index ee33d5c08..e3964eb76 100644
--- a/src/http_ana.c
+++ b/src/http_ana.c
@@ -2524,9 +2524,9 @@ int http_apply_redirect_rule(struct redirect_rule *rule, 
struct stream *s, struc
                        }
                        else {
                                /* add location with executing log format */
-                               int len = build_logline(s, chunk->area + 
chunk->data,
-                                                       chunk->size - 
chunk->data,
-                                                       &rule->rdr_fmt);
+                               size_t len = build_logline(s, chunk->area + 
chunk->data,
+                                                          chunk->size - 
chunk->data,
+                                                          &rule->rdr_fmt);
                                if (!len && rule->flags & 
REDIRECT_FLAG_IGNORE_EMPTY) {
                                        ret = 2;
                                        goto out;
diff --git a/src/log.c b/src/log.c
index f56a3fd44..671eaee01 100644
--- a/src/log.c
+++ b/src/log.c
@@ -3885,7 +3885,7 @@ int lf_expr_dup(const struct lf_expr *orig, struct 
lf_expr *dest)
  * is not zero. It requires a valid session and optionally a stream. If the
  * stream is NULL, default values will be assumed for the stream part.
  */
-int sess_build_logline_orig(struct session *sess, struct stream *s,
+size_t sess_build_logline_orig(struct session *sess, struct stream *s,
                             char *dst, size_t maxsize, struct lf_expr *lf_expr,
                             struct log_orig log_orig)
 {
@@ -5229,8 +5229,8 @@ static void do_log_ctx(struct process_send_log_ctx *ctx)
        struct stream *s = ctx->stream;
        struct session *sess = ctx->sess;
        struct log_orig origin = ctx->origin;
-       int size;
-       int sd_size = 0;
+       size_t size;
+       size_t sd_size = 0;
        int level = -1;
 
        if (LIST_ISEMPTY(&sess->fe->loggers))
@@ -5291,8 +5291,9 @@ void strm_log(struct stream *s, struct log_orig origin)
 {
        struct process_send_log_ctx ctx;
        struct session *sess = s->sess;
-       int size, err, level;
-       int sd_size = 0;
+       int err, level;
+       size_t size;
+       size_t sd_size = 0;
 
        /* if we don't want to log normal traffic, return now */
        err = (s->flags & SF_REDISP) ||
@@ -5353,8 +5354,9 @@ void strm_log(struct stream *s, struct log_orig origin)
 void _sess_log(struct session *sess, int embryonic)
 {
        struct process_send_log_ctx ctx;
-       int size, level;
-       int sd_size = 0;
+       int level;
+       size_t size;
+       size_t sd_size = 0;
        struct log_orig orig;
 
        if (!sess)
-- 
2.53.0



Reply via email to