diff options
| author | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2023-01-19 12:21:27 -0300 | 
|---|---|---|
| committer | Rafael Zalamena <rzalamena@opensourcerouting.org> | 2023-01-20 15:40:24 -0300 | 
| commit | b6ee94b5b1f0a0652455264fa62a92ed5abbf855 (patch) | |
| tree | 7e293340fb880323754cd39ebf236ba9703b05cb /ldpd | |
| parent | d8145114e0be94ee634743d696112a80826094ea (diff) | |
ldpd: fix time truncation
Use bigger storage for handling time variables so we don't truncate.
Found by Coverity Scan (CID 1519735)
Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
Diffstat (limited to 'ldpd')
| -rw-r--r-- | ldpd/logmsg.c | 14 | 
1 files changed, 10 insertions, 4 deletions
diff --git a/ldpd/logmsg.c b/ldpd/logmsg.c index ff9294f9d2..e16006b892 100644 --- a/ldpd/logmsg.c +++ b/ldpd/logmsg.c @@ -137,7 +137,7 @@ log_time(time_t t)  	char		*buf;  	static char	 tfbuf[TF_BUFS][TF_LEN];	/* ring buffer */  	static int	 idx = 0; -	unsigned int	 sec, min, hrs, day, week; +	uint64_t	 sec, min, hrs, day, week;  	buf = tfbuf[idx++];  	if (idx == TF_BUFS) @@ -155,11 +155,17 @@ log_time(time_t t)  	week /= 7;  	if (week > 0) -		snprintf(buf, TF_LEN, "%02uw%01ud%02uh", week, day, hrs); +		snprintfrr(buf, TF_LEN, +			   "%02" PRIu64 "w%01" PRIu64 "d%02" PRIu64 "h", week, +			   day, hrs);  	else if (day > 0) -		snprintf(buf, TF_LEN, "%01ud%02uh%02um", day, hrs, min); +		snprintfrr(buf, TF_LEN, +			   "%01" PRIu64 "d%02" PRIu64 "h%02" PRIu64 "m", day, +			   hrs, min);  	else -		snprintf(buf, TF_LEN, "%02u:%02u:%02u", hrs, min, sec); +		snprintfrr(buf, TF_LEN, +			   "%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64, hrs, min, +			   sec);  	return (buf);  }  | 
