Blob Blame History Raw
From 9726f9ff11fa7b94dceed2972cd2453a08b9ee6a Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 4 Jul 2011 18:59:54 +0200
Subject: [PATCH] password-agent: make sure not to access unallocated memory

Tracked down by Frederic Crozat
---
 src/tty-ask-password-agent.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/tty-ask-password-agent.c b/src/tty-ask-password-agent.c
index b620aa6..38442f6 100644
--- a/src/tty-ask-password-agent.c
+++ b/src/tty-ask-password-agent.c
@@ -376,12 +376,14 @@ static int parse_password(const char *filename, char **wall) {
                                 release_terminal();
                         }
 
-                        packet_length = 1+strlen(password)+1;
-                        if (!(packet = new(char, packet_length)))
-                                r = -ENOMEM;
-                        else {
-                                packet[0] = '+';
-                                strcpy(packet+1, password);
+                        if (r >= 0) {
+                                packet_length = 1+strlen(password)+1;
+                                if (!(packet = new(char, packet_length)))
+                                        r = -ENOMEM;
+                                else {
+                                        packet[0] = '+';
+                                        strcpy(packet+1, password);
+                                }
                         }
 
                         free(password);
-- 
1.7.4.4