return -1;
if (do_mkdirp) {
- ret = snprintf(fifo_path, fifo_path_sz, "%s/lxc/%s", rundir, lxcpath);
- if (ret < 0 || (size_t)ret >= fifo_path_sz) {
+ ret = strnprintf(fifo_path, fifo_path_sz, "%s/lxc/%s", rundir, lxcpath);
+ if (ret < 0) {
ERROR("rundir/lxcpath (%s/%s) too long for monitor fifo", rundir, lxcpath);
free(rundir);
return -1;
return ret;
}
}
- ret = snprintf(fifo_path, fifo_path_sz, "%s/lxc/%s/monitor-fifo", rundir, lxcpath);
- if (ret < 0 || (size_t)ret >= fifo_path_sz) {
+ ret = strnprintf(fifo_path, fifo_path_sz, "%s/lxc/%s/monitor-fifo", rundir, lxcpath);
+ if (ret < 0) {
ERROR("rundir/lxcpath (%s/%s) too long for monitor fifo", rundir, lxcpath);
free(rundir);
return -1;
/* strlen("lxc/") + strlen("/monitor-sock") + 1 = 18 */
len = strlen(lxcpath) + 18;
path = must_realloc(NULL, len);
- ret = snprintf(path, len, "lxc/%s/monitor-sock", lxcpath);
- if (ret < 0 || (size_t)ret >= len) {
+ ret = strnprintf(path, len, "lxc/%s/monitor-sock", lxcpath);
+ if (ret < 0) {
ERROR("Failed to create name for monitor socket");
return -1;
}
- /* Note: snprintf() will \0-terminate addr->sun_path on the 106th byte
+ /* Note: strnprintf() will \0-terminate addr->sun_path on the 106th byte
* and so the abstract socket name has 105 "meaningful" characters. This
* is absolutely intentional. For further info read the comment for this
* function above!
*/
len = sizeof(addr->sun_path) - 1;
hash = fnv_64a_buf(path, ret, FNV1A_64_INIT);
- ret = snprintf(addr->sun_path, len, "@lxc/%016" PRIx64 "/%s", hash, lxcpath);
+ ret = strnprintf(addr->sun_path, len, "@lxc/%016" PRIx64 "/%s", hash, lxcpath);
if (ret < 0) {
ERROR("Failed to create hashed name for monitor socket");
goto on_error;
- } else if ((size_t)ret >= len) {
- errno = ENAMETOOLONG;
- SYSERROR("The name of monitor socket too long (%d bytes)", ret);
- goto on_error;
}
/* replace @ with \0 */
close(pipefd[0]);
- ret = snprintf(pipefd_str, sizeof(pipefd_str), "%d", pipefd[1]);
- if (ret < 0 || ret >= sizeof(pipefd_str)) {
+ ret = strnprintf(pipefd_str, sizeof(pipefd_str), "%d", pipefd[1]);
+ if (ret < 0) {
ERROR("Failed to create pid argument to pass to monitord");
_exit(EXIT_FAILURE);
}