summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sysupgrade.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sysupgrade.c b/sysupgrade.c
index fc588b0..e6c1c95 100644
--- a/sysupgrade.c
+++ b/sysupgrade.c
@@ -19,8 +19,10 @@
#include "sysupgrade.h"
#include <ctype.h>
+#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <unistd.h>
#include <libubox/blobmsg.h>
@@ -100,10 +102,12 @@ void sysupgrade_exec_upgraded(const char *prefix, char *path,
free(name);
}
+ errno = 0;
+
execvp(argv[0], argv);
/* Cleanup on failure */
- fprintf(stderr, "Failed to exec upgraded.\n");
+ fprintf(stderr, "Failed to exec upgraded: %s\n", strerror(-errno));
unsetenv("WDTFD");
watchdog_set_cloexec(true);
ret = chroot(".");