File pam_mount-1.27-fix-double-free.dif of Package pam_mount
Index: pam_mount-1.27/src/mount.c
===================================================================
--- pam_mount-1.27.orig/src/mount.c
+++ pam_mount-1.27/src/mount.c
@@ -462,7 +462,7 @@ static void mount_set_fsck(const struct
* @config: current config
* @vpt: volume descriptor
* @vinfo:
- * @password: login password
+ * @password: login password (may be %NULL)
*
* Returns zero on error, positive non-zero for success.
*/
@@ -476,7 +476,6 @@ int do_mount(const struct config *config
int ret;
assert(vinfo != NULL);
- assert(password != NULL);
ret = pmt_already_mounted(config, vpt, vinfo);
if (ret < 0) {
Index: pam_mount-1.27/src/pam_mount.c
===================================================================
--- pam_mount-1.27.orig/src/pam_mount.c
+++ pam_mount-1.27/src/pam_mount.c
@@ -526,8 +526,6 @@ PAM_EXTERN EXPORT_SYMBOL int pam_sm_open
* e.g. bind mounts and networked/unencrypted volumes.
*/
}
- if (system_authtok == NULL)
- system_authtok = xstrdup("");
misc_dump_id("Session open");
@@ -550,10 +548,6 @@ PAM_EXTERN EXPORT_SYMBOL int pam_sm_open
ret = PAM_SERVICE_ERR;
}
}
- if (system_authtok != NULL) {
- memset(system_authtok, 0, strlen(system_authtok));
- free(system_authtok);
- }
modify_pm_count(&Config, Config.user, "1");
envpath_restore();
if (getuid() == 0)