Use stb_snprintf instead of libc snprintf.

This gives us consistent behavior and stb_snprintf is async signal
safe.
This commit is contained in:
Nicholas J. Kain
2022-03-07 20:42:00 -05:00
parent 3773acf64d
commit 484a9c516b
12 changed files with 2496 additions and 573 deletions

View File

@ -6,8 +6,8 @@
#include <stdio.h>
#include <string.h>
#include <arpa/inet.h>
#include "nk/stb_sprintf.h"
#include "nk/log.h"
#include "ifchd-parse.h"
#include "ifchd.h"
#include "ifset.h"
@ -1187,7 +1187,7 @@ int execute_buffer(const char *newbuf)
char tb[MAX_BUF];
int cmdf = 0;
ssize_t buflen = snprintf(buf, sizeof buf, "%s%s", cl.ibuf, newbuf);
ssize_t buflen = stbsp_snprintf(buf, sizeof buf, "%s%s", cl.ibuf, newbuf);
memset(cl.ibuf, 0, sizeof cl.ibuf);
if (buflen < 0 || (size_t)buflen > sizeof buf) {
log_line("%s: (%s) snprintf1 failed", client_config.interface, __func__);
@ -3256,7 +3256,7 @@ int execute_buffer(const char *newbuf)
}
if (cmd_start != pe) {
ssize_t ilen = snprintf(cl.ibuf, sizeof cl.ibuf, "%s", cmd_start);
ssize_t ilen = stbsp_snprintf(cl.ibuf, sizeof cl.ibuf, "%s", cmd_start);
if (ilen < 0 || (size_t)ilen > sizeof buf) {
log_line("%s: (%s) snprintf2 failed", client_config.interface, __func__);
return -99;