summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Grunert <sgrunert@suse.com>2019-06-20 13:38:16 +0200
committerSascha Grunert <sgrunert@suse.com>2019-06-20 14:52:32 +0200
commitfa1b0a2d891d393d6762654d8385ef0347e1adfa (patch)
tree7979567721e07bf736c474469df82f08c4bdcf2d
parentb4f9bc868e2f5b3ffc5b7487be9d7b717dd6ae5b (diff)
downloadpodman-fa1b0a2d891d393d6762654d8385ef0347e1adfa.tar.gz
podman-fa1b0a2d891d393d6762654d8385ef0347e1adfa.tar.bz2
podman-fa1b0a2d891d393d6762654d8385ef0347e1adfa.zip
Handle possible asprintf failure in rootless_linux.c
If `asprintf` fails we early exit now. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
-rw-r--r--pkg/rootless/rootless_linux.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/pkg/rootless/rootless_linux.c b/pkg/rootless/rootless_linux.c
index eb62d55e9..5ab368691 100644
--- a/pkg/rootless/rootless_linux.c
+++ b/pkg/rootless/rootless_linux.c
@@ -416,9 +416,16 @@ create_pause_process (const char *pause_pid_file_path, char **argv)
sprintf (pid_str, "%d", pid);
- asprintf (&tmp_file_path, "%s.XXXXXX", pause_pid_file_path);
+ if (asprintf (&tmp_file_path, "%s.XXXXXX", pause_pid_file_path) < 0)
+ {
+ fprintf (stderr, "unable to print to string\n");
+ kill (pid, SIGKILL);
+ _exit (EXIT_FAILURE);
+ }
+
if (tmp_file_path == NULL)
{
+ fprintf (stderr, "temporary file path is NULL\n");
kill (pid, SIGKILL);
_exit (EXIT_FAILURE);
}
@@ -426,6 +433,7 @@ create_pause_process (const char *pause_pid_file_path, char **argv)
fd = mkstemp (tmp_file_path);
if (fd < 0)
{
+ fprintf (stderr, "error creating temporary file: %s\n", strerror (errno));
kill (pid, SIGKILL);
_exit (EXIT_FAILURE);
}
@@ -433,6 +441,7 @@ create_pause_process (const char *pause_pid_file_path, char **argv)
r = TEMP_FAILURE_RETRY (write (fd, pid_str, strlen (pid_str)));
if (r < 0)
{
+ fprintf (stderr, "cannot write to file descriptor: %s\n", strerror (errno));
kill (pid, SIGKILL);
_exit (EXIT_FAILURE);
}