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

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