diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-04-24 23:28:05 -0400 |
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-04-24 23:28:05 -0400 |
| commit | b90c1e085564c410bddb5f4c9ea796cb41804bd2 (patch) | |
| tree | 92813a762e017156e96763c1302538beed97a0e3 /src | |
| parent | f1a92821c3019f80357331d087b8ca86745857f9 (diff) | |
| download | stasis-b90c1e085564c410bddb5f4c9ea796cb41804bd2.tar.gz | |
Fix snprintf calls
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/core/ini.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib/core/ini.c b/src/lib/core/ini.c index 16ffc20..12541f5 100644 --- a/src/lib/core/ini.c +++ b/src/lib/core/ini.c @@ -456,15 +456,19 @@ int ini_write(struct INIFILE *ini, FILE **stream, unsigned mode) { return -1; } + size_t len = 0; if (*hint == INIVAL_TYPE_STR_ARRAY) { int leading_space = isspace(*render); if (leading_space) { - snprintf(outvalue + strlen(outvalue), sizeof(outvalue) - strlen(outvalue), "%s" LINE_SEP, render); + len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, "%s" LINE_SEP, render); + snprintf(outvalue + strlen(outvalue), len, "%s" LINE_SEP, render); } else { - snprintf(outvalue + strlen(outvalue), sizeof(outvalue) - strlen(outvalue), " %s" LINE_SEP, render); + len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, " %s" LINE_SEP, render); + snprintf(outvalue + strlen(outvalue), len, " %s" LINE_SEP, render); } } else { - snprintf(outvalue + strlen(outvalue), sizeof(outvalue) - strlen(outvalue), "%s", render); + len = sizeof(outvalue) - (size_t) snprintf(NULL, 0, "%s", render); + snprintf(outvalue + strlen(outvalue), len, "%s", render); } if (mode == INI_WRITE_PRESERVE) { guard_free(render); |
