OSDN Git Service

Add missing O_CLOEXEC and TEMP_FAILURE_RETRY to localtime.c.
authorElliott Hughes <enh@google.com>
Mon, 3 Oct 2016 23:46:33 +0000 (16:46 -0700)
committerElliott Hughes <enh@google.com>
Mon, 3 Oct 2016 23:46:33 +0000 (16:46 -0700)
Follow-on change from http://b/31848040.

Test: *time* tests.
Change-Id: I3f1c9ce19b90f6f8c1ac6e0753e3fed0ff63c0b4

libc/tzcode/localtime.c

index 6e88819..74411f7 100644 (file)
@@ -426,7 +426,7 @@ tzloadbody(char const *name, struct state *sp, bool doextend,
          return errno;
 
 #if defined(__BIONIC__)
-       nread = read(fid, up->buf, entry_length);
+       nread = TEMP_FAILURE_RETRY(read(fid, up->buf, entry_length));
 #else
        nread = read(fid, up->buf, sizeof up->buf);
 #endif
@@ -2361,7 +2361,7 @@ static int __bionic_open_tzdata_path(const char* path_prefix_variable, const cha
     return -1;
   }
   snprintf(path, path_length, "%s/%s", path_prefix, path_suffix);
-  int fd = TEMP_FAILURE_RETRY(open(path, OPEN_MODE));
+  int fd = TEMP_FAILURE_RETRY(open(path, O_RDONLY | O_CLOEXEC));
   if (fd == -1) {
     free(path);
     return -2; // Distinguish failure to find any data from failure to find a specific id.