if (len < 6 || strncmp(fnam + len - 5, ".conf", 5) != 0)
continue;
- len = snprintf(path, PATH_MAX, "%s/%s", dirp, fnam);
- if (len < 0 || len >= PATH_MAX)
+ len = strnprintf(path, sizeof(path), "%s/%s", dirp, fnam);
+ if (len < 0)
return ret_errno(EIO);
ret = lxc_config_read(path, lxc_conf, true);
tmp = must_realloc(NULL, len);
if (lxc_config_value_empty(v))
- ret = snprintf(tmp, len, "%s =", key);
+ ret = strnprintf(tmp, len, "%s =", key);
else
- ret = snprintf(tmp, len, "%s = %s", key, v);
- if (ret < 0 || ret >= len)
+ ret = strnprintf(tmp, len, "%s = %s", key, v);
+ if (ret < 0)
return false;
/* Save the line verbatim into unexpanded_conf */
olddirlen = strlen(ovldir) + strlen(oldpath) + strlen(oldname) + 2;
olddir = must_realloc(NULL, olddirlen + 1);
- ret = snprintf(olddir, olddirlen + 1, "%s=%s/%s", ovldir, oldpath,
- oldname);
- if (ret < 0 || ret >= olddirlen + 1)
+ ret = strnprintf(olddir, olddirlen + 1, "%s=%s/%s", ovldir, oldpath, oldname);
+ if (ret < 0)
return false;
newdirlen = strlen(ovldir) + strlen(newpath) + strlen(newname) + 2;
newdir = must_realloc(NULL, newdirlen + 1);
- ret = snprintf(newdir, newdirlen + 1, "%s=%s/%s", ovldir, newpath,
- newname);
- if (ret < 0 || ret >= newdirlen + 1)
+ ret = strnprintf(newdir, newdirlen + 1, "%s=%s/%s", ovldir, newpath, newname);
+ if (ret < 0)
return false;
if (!conf->unexpanded_config)
olddirlen = strlen(oldpath) + strlen(oldname) + 1;
olddir = must_realloc(NULL, olddirlen + 1);
- ret = snprintf(olddir, olddirlen + 1, "%s/%s", oldpath, oldname);
- if (ret < 0 || ret >= olddirlen + 1)
+ ret = strnprintf(olddir, olddirlen + 1, "%s/%s", oldpath, oldname);
+ if (ret < 0)
return false;
newdirlen = strlen(newpath) + strlen(newname) + 1;
newdir = must_realloc(NULL, newdirlen + 1);
- ret = snprintf(newdir, newdirlen + 1, "%s/%s", newpath, newname);
- if (ret < 0 || ret >= newdirlen + 1)
+ ret = strnprintf(newdir, newdirlen + 1, "%s/%s", newpath, newname);
+ if (ret < 0)
return false;
if (!conf->unexpanded_config)
listlen = lxc_list_len(&c->id_map);
lxc_list_for_each(it, &c->id_map) {
struct id_map *map = it->elem;
- ret = snprintf(buf, __LXC_IDMAP_STR_BUF, "%c %lu %lu %lu",
- (map->idtype == ID_TYPE_UID) ? 'u' : 'g',
- map->nsid, map->hostid, map->range);
- if (ret < 0 || ret >= __LXC_IDMAP_STR_BUF)
+ ret = strnprintf(buf, sizeof(buf), "%c %lu %lu %lu",
+ (map->idtype == ID_TYPE_UID) ? 'u' : 'g',
+ map->nsid, map->hostid, map->range);
+ if (ret < 0)
return ret_errno(EIO);
strprint(retv, inlen, "%s%s", buf, (listlen-- > 1) ? "\n" : "");