From: Alan T. DeKok Date: Mon, 3 Jan 2011 20:25:21 +0000 (+0100) Subject: Fix fd leak X-Git-Tag: release_2_1_11~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5853570817fc2a1b5e972fbafe10568813e426ac;p=thirdparty%2Ffreeradius-server.git Fix fd leak --- diff --git a/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c b/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c index 09bf6264bdd..35f26f3549e 100644 --- a/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c +++ b/src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c @@ -609,17 +609,19 @@ static int cbtls_verify(int ok, X509_STORE_CTX *ctx) while (conf->verify_client_cert_cmd) { char filename[256]; + int fd; FILE *fp; snprintf(filename, sizeof(filename), "%s/%s.client.XXXXXXXX", conf->verify_tmp_dir, progname); - if (mkstemp(filename) < 0) { + fd = mkstemp(filename); + if (fd < 0) { RDEBUG("Failed creating file in %s: %s", conf->verify_tmp_dir, strerror(errno)); break; } - fp = fopen(filename, "w"); + fp = fdopen(fd, "w"); if (!fp) { RDEBUG("Failed opening file %s: %s", filename, strerror(errno));