]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix fd leak
authorAlan T. DeKok <aland@freeradius.org>
Mon, 3 Jan 2011 20:25:21 +0000 (21:25 +0100)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 3 Jan 2011 20:25:21 +0000 (21:25 +0100)
src/modules/rlm_eap/types/rlm_eap_tls/rlm_eap_tls.c

index 09bf6264bdd4c2a665647f42203c8b0b70578cf9..35f26f3549e31d07c306d9835f54c1209618df1d 100644 (file)
@@ -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));