`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