check return value of snprintf()

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2017-12-09 19:53:43 +01:00
parent d5590c8c70
commit e8eb39565a
No known key found for this signature in database
GPG Key ID: 8EB056D53EECB12D

View File

@ -717,10 +717,12 @@ char *lxc_deslashify(const char *path)
char *lxc_append_paths(const char *first, const char *second)
{
size_t len = strlen(first) + strlen(second) + 1;
const char *pattern = "%s%s";
int ret;
size_t len;
char *result = NULL;
const char *pattern = "%s%s";
len = strlen(first) + strlen(second) + 1;
if (second[0] != '/') {
len += 1;
pattern = "%s/%s";
@ -730,7 +732,12 @@ char *lxc_append_paths(const char *first, const char *second)
if (!result)
return NULL;
snprintf(result, len, pattern, first, second);
ret = snprintf(result, len, pattern, first, second);
if (ret < 0 || (size_t)ret >= len) {
free(result);
return NULL;
}
return result;
}