Fix load_policy error reporting.
authorElliott Hughes <enh@google.com>
Tue, 7 Apr 2015 20:11:55 +0000 (13:11 -0700)
committerRob Landley <rob@landley.net>
Sat, 11 Apr 2015 01:42:31 +0000 (20:42 -0500)
Also switch to xopen for O_CLOEXEC paranoia and to avoid a conditional.

Change-Id: Iee5c4c124bcac800313f586768ffcaade542bd22

toys/android/load_policy.c

index aa59f36..8496736 100644 (file)
@@ -20,18 +20,13 @@ config LOAD_POLICY
 void load_policy_main(void)
 {
   char *path = *toys.optargs;
-  char *policy_data = 0;
-  off_t policy_len;
-  int fd;
-
-  if ((fd = open(path, O_RDONLY)) != -1) {
-    policy_len = fdlength(fd);
-    policy_data = mmap(0, policy_len, PROT_READ, MAP_PRIVATE, fd, 0);
-    close(fd);
-  }
+  int fd = xopen(path, O_RDONLY);
+  off_t policy_len = fdlength(fd);
+  char *policy_data = mmap(0, policy_len, PROT_READ, MAP_PRIVATE, fd, 0);
 
+  close(fd);
   if (!policy_data || security_load_policy(policy_data, policy_len) < 0)
-    perror_exit("Couldn't %s %s: %s", policy_data ? "load" : "read", path);
+    perror_exit("Couldn't %s %s", policy_data ? "load" : "read", path);
 
   munmap(policy_data, policy_len);
 }