summaryrefslogtreecommitdiffstats
path: root/upgraded
diff options
context:
space:
mode:
authorJohn Crispin <blogic@openwrt.org>2015-03-28 15:41:58 +0100
committerJohn Crispin <blogic@openwrt.org>2015-03-28 18:35:21 +0100
commit91da63d3d3fd680c805dd1a1b78df5b8731a8173 (patch)
treeec9a568a398ae536ccf7ac89a23942a60ef25c98 /upgraded
parent74d835463e05e5761f6f5271e487f299f29d3f07 (diff)
downloadunitd-91da63d3d3fd680c805dd1a1b78df5b8731a8173.tar
unitd-91da63d3d3fd680c805dd1a1b78df5b8731a8173.zip
properly handle return codes
Signed-off-by: John Crispin <blogic@openwrt.org>
Diffstat (limited to 'upgraded')
-rw-r--r--upgraded/upgraded.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/upgraded/upgraded.c b/upgraded/upgraded.c
index 1e4057a..d7433e7 100644
--- a/upgraded/upgraded.c
+++ b/upgraded/upgraded.c
@@ -18,6 +18,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <errno.h>
#include <libubox/uloop.h>
@@ -55,12 +56,14 @@ int main(int argc, char **argv)
{
pid_t p = getpid();
- chdir("/tmp");
-
if (p != 1) {
fprintf(stderr, "this tool needs to run as pid 1\n");
return -1;
}
+ if (chdir("/tmp") == -1) {
+ fprintf(stderr, "failed to chdir to /tmp: %s\n", strerror(errno));
+ return -1;
+ }
if (argc != 2) {
fprintf(stderr, "sysupgrade stage 2 failed, no folder specified\n");
return -1;