Fix GCC 9 string trunction warning

- Increase size of resulting path buffer, unlikely a real problem
- Check return value from snprintf() to detect errors and truncation
- Add logit() function wrapper to initctl, maps to _e()/_d()/_pe()

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2020-01-07 01:03:57 +01:00
parent 744719219e
commit 8d271ac5b8
5 changed files with 22 additions and 6 deletions
+5 -2
View File
@@ -46,8 +46,9 @@ int pid_file_parse (svc_t *svc, char *arg);
*/
static inline char *pid_runpath(const char *file, char *path, size_t len)
{
static int unknown = 1;
static char *prefix = "/var/run";
static int unknown = 1;
int rc;
if (unknown) {
if (fisdir("/run"))
@@ -60,7 +61,9 @@ static inline char *pid_runpath(const char *file, char *path, size_t len)
else if (!strncmp(file, "/run/", 5))
file += 5;
snprintf(path, len, "%s/%s", prefix, file);
rc = snprintf(path, len, "%s/%s", prefix, file);
if (rc < 0 || (size_t)rc >= len)
_e("File path '%s' truncated, should end with '%s'", path, file);
return path;
}