diff options
| author | Neels Hofmeyr <neels@hofmeyr.de> | 2018-01-17 13:20:02 +0100 | 
|---|---|---|
| committer | Neels Hofmeyr <neels@hofmeyr.de> | 2018-01-17 13:27:55 +0100 | 
| commit | 5e518b5b4c9abb404055f38c2fc5061bf5530493 (patch) | |
| tree | c6e939e3102f9148da541d3835c574e473bea9dd | |
| parent | e653472573323a9abf910555fe38eb34b1f42840 (diff) | |
fix -Werror build: logging.c: always use literal with snprintf
A recent commit added an snprintf that passes a pointer to a literal directly
to snprintf. Since passing pointers to printf formats is a vulnerability in
case user supplied data may be passed in the format, modern compilers warn
against that, which breaks our -Werror builds. Even though this is just a
pointer to a literal, it needs to be an actual literal to make compilers happy.
Use printf("%s", c) instead of printf(c).
Note that our current build slave's gcc does not enforce that yet, while newer
compilers do.
  logging.c:338:4: warning: format not a string literal and no format arguments [-Wformat-security]
       ret = snprintf(buf + offset, rem, c_subsys);
Change-Id: Ifa4eb8a9fab66dcd987986065351b4a06421f1ec
| -rw-r--r-- | src/logging.c | 2 | 
1 files changed, 1 insertions, 1 deletions
| diff --git a/src/logging.c b/src/logging.c index a6aa7eba..9b37bf53 100644 --- a/src/logging.c +++ b/src/logging.c @@ -335,7 +335,7 @@ static void _output(struct log_target *target, unsigned int subsys,  	if (target->use_color) {  		c_subsys = color(subsys);  		if (c_subsys) { -			ret = snprintf(buf + offset, rem, c_subsys); +			ret = snprintf(buf + offset, rem, "%s", c_subsys);  			if (ret < 0)  				goto err;  			OSMO_SNPRINTF_RET(ret, rem, offset, len); | 
