diff options
author | Nalin Dahyabhai <nalin@redhat.com> | 2001-02-28 10:05:50 +0000 |
---|---|---|
committer | Nalin Dahyabhai <nalin@redhat.com> | 2001-02-28 10:05:50 +0000 |
commit | d27070adf5d0681060d6c9615018c01a374fc8c9 (patch) | |
tree | b4d60538bfb2d21b74a65802264342932527b539 | |
parent | 7c28717f1a644bec5cd6ed0e549005b3df49b352 (diff) | |
download | initscripts-d27070adf5d0681060d6c9615018c01a374fc8c9.tar initscripts-d27070adf5d0681060d6c9615018c01a374fc8c9.tar.gz initscripts-d27070adf5d0681060d6c9615018c01a374fc8c9.tar.bz2 initscripts-d27070adf5d0681060d6c9615018c01a374fc8c9.tar.xz initscripts-d27070adf5d0681060d6c9615018c01a374fc8c9.zip |
use O_NOFOLLOW
-rw-r--r-- | src/netreport.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/netreport.c b/src/netreport.c index 7f1d964a..cceedc3a 100644 --- a/src/netreport.c +++ b/src/netreport.c @@ -7,7 +7,8 @@ /* this will be running setgid root, so be careful! */ -void usage(void) { +static void +usage(void) { fprintf(stderr, "usage: netreport [-r]\n"); exit(1); } @@ -20,10 +21,12 @@ int main(int argc, char ** argv) { char netreport_name[64]; int netreport_file; - if (argc > 2) usage(); + if (argc > 2) { + usage(); + } if (argc > 1) { - if (!strcmp(argv[1], "-r")) { + if (strcmp(argv[1], "-r") == 0) { action = DEL; } else { usage(); @@ -34,9 +37,8 @@ int main(int argc, char ** argv) { "/var/run/netreport/%d", getppid()); if (action == ADD) { netreport_file = open(netreport_name, - O_EXCL | O_CREAT | O_WRONLY | O_TRUNC, - 0); - if (netreport_file < 0) { + O_EXCL|O_CREAT|O_WRONLY|O_TRUNC|O_NOFOLLOW, 0); + if (netreport_file == -1) { if (errno != EEXIST) { perror("Could not create netreport file"); exit (1); @@ -49,5 +51,5 @@ int main(int argc, char ** argv) { unlink(netreport_name); } - exit(0); + return 0; } |