Blame SOURCES/pam-1.3.1-pam-motd-fix-memory-leak.patch

b51b82
From 62cd745d730e5ba13d5d7092ac566fc0b2148e61 Mon Sep 17 00:00:00 2001
b51b82
From: "Dmitry V. Levin" <ldv@altlinux.org>
b51b82
Date: Sun, 26 Apr 2020 11:12:59 +0000
b51b82
Subject: [PATCH] pam_motd: fix memory leak
b51b82
b51b82
pam_motd used to leak memory allocated for each motd file
b51b82
successfully opened in try_to_display_directories_with_overrides.
b51b82
b51b82
* modules/pam_motd/pam_motd.c
b51b82
(try_to_display_directories_with_overrides): Free abs_path.
b51b82
b51b82
Fixes: f9c9c721 ("pam_motd: Support multiple motd paths specified, with filename overrides (#69)")
b51b82
---
b51b82
 modules/pam_motd/pam_motd.c | 20 ++++++++++----------
b51b82
 1 file changed, 10 insertions(+), 10 deletions(-)
b51b82
b51b82
diff --git a/modules/pam_motd/pam_motd.c b/modules/pam_motd/pam_motd.c
b51b82
index f0cd317d..3be129a5 100644
b51b82
--- a/modules/pam_motd/pam_motd.c
b51b82
+++ b/modules/pam_motd/pam_motd.c
b51b82
@@ -259,23 +259,23 @@ static void try_to_display_directories_with_overrides(pam_handle_t *pamh,
b51b82
 
b51b82
 	for (j = 0; j < num_motd_dirs; j++) {
b51b82
 	    char *abs_path = NULL;
b51b82
+	    int fd;
b51b82
 
b51b82
 	    if (join_dir_strings(&abs_path, motd_dir_path_split[j],
b51b82
-		    dirnames_all[i]) < 0) {
b51b82
+		    dirnames_all[i]) < 0 || abs_path == NULL) {
b51b82
 		continue;
b51b82
 	    }
b51b82
 
b51b82
-	    if (abs_path != NULL) {
b51b82
-		int fd = open(abs_path, O_RDONLY, 0);
b51b82
-		if (fd >= 0) {
b51b82
-		    try_to_display_fd(pamh, fd);
b51b82
-		    close(fd);
b51b82
+	    fd = open(abs_path, O_RDONLY, 0);
b51b82
+	    _pam_drop(abs_path);
b51b82
 
b51b82
-		    /* We displayed a file, skip to the next file name. */
b51b82
-		    break;
b51b82
-		}
b51b82
+	    if (fd >= 0) {
b51b82
+		try_to_display_fd(pamh, fd);
b51b82
+		close(fd);
b51b82
+
b51b82
+		/* We displayed a file, skip to the next file name. */
b51b82
+		break;
b51b82
 	    }
b51b82
-	    _pam_drop(abs_path);
b51b82
 	}
b51b82
     }
b51b82
 
b51b82
-- 
b51b82
2.35.3
b51b82