From: Greg Hudson Date: Mon, 25 Mar 2013 21:38:41 +0000 (-0400) Subject: Fix a trivial file leak writing kadmind pid file X-Git-Tag: krb5-1.12-alpha1~251 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=47ec1ab146334f94b97e6572904a14ad67ee2524;p=thirdparty%2Fkrb5.git Fix a trivial file leak writing kadmind pid file If we fail to write the pid to the pid file, we should still close the file before returning from write_pid_file(). The consequences of this bug are trivial because kadmin is just going to exit regardless. Reported by Will Fiveash . --- diff --git a/src/kadmin/server/ovsec_kadmd.c b/src/kadmin/server/ovsec_kadmd.c index 60a2afbb9c..a1fee7e3aa 100644 --- a/src/kadmin/server/ovsec_kadmd.c +++ b/src/kadmin/server/ovsec_kadmd.c @@ -188,14 +188,15 @@ write_pid_file(const char *pid_file) { FILE *file; unsigned long pid; + int st1, st2; file = fopen(pid_file, "w"); if (file == NULL) return errno; pid = (unsigned long) getpid(); - if (fprintf(file, "%ld\n", pid) < 0 || fclose(file) == EOF) - return errno; - return 0; + st1 = fprintf(file, "%ld\n", pid); + st2 = fclose(file); + return (st1 < 0 || st2 == EOF) ? errno : 0; } /* XXX yuck. the signal handlers need this */