diff options
author | 2022-03-27 22:17:31 -0400 | |
---|---|---|
committer | 2022-03-27 22:26:54 -0400 | |
commit | 05fedc64c18555f391dbf766630ab7f6f42d22d2 (patch) | |
tree | 943b30cb982e7b03cc25b08d6e25059ecbec8c38 | |
parent | Make clear that it's meant for import (diff) | |
download | seedrng-05fedc64c18555f391dbf766630ab7f6f42d22d2.tar.xz seedrng-05fedc64c18555f391dbf766630ab7f6f42d22d2.zip |
Avoid closing -1 fd on exit
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | seedrng.c | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -365,7 +365,7 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) { static const char seedrng_prefix[] = "SeedRNG v1 Old+New Prefix"; static const char seedrng_failure[] = "SeedRNG v1 No New Seed Failure"; - int ret, fd, lock, program_ret = 0; + int ret, fd = -1, lock, program_ret = 0; uint8_t new_seed[MAX_SEED_LEN]; size_t new_seed_len; bool new_seed_creditable; @@ -393,7 +393,8 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) lock = open(LOCK_FILE, O_WRONLY | O_CREAT, 0000); if (lock < 0 || flock(lock, LOCK_EX) < 0) { fprintf(stderr, "ERROR: Unable to open lock file: %s\n", strerror(errno)); - return 1; + program_ret = 1; + goto out; } ret = seed_from_file_if_exists(NON_CREDITABLE_SEED, false, &hash); @@ -432,7 +433,9 @@ int main(int argc __attribute__((unused)), char *argv[] __attribute__((unused))) program_ret |= 1 << 6; } out: - close(fd); - close(lock); + if (fd >= 0) + close(fd); + if (lock >= 0) + close(lock); return program_ret; } |