diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-07-04 18:59:54 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-07-04 19:00:48 +0200 |
commit | 9726f9ff11fa7b94dceed2972cd2453a08b9ee6a (patch) | |
tree | 1d35e78b99e457afdb812dc9f8989dd458b209ee /src/tty-ask-password-agent.c | |
parent | b8590c197deceab623d37dbb95e30eec9cf47d14 (diff) |
password-agent: make sure not to access unallocated memory
Tracked down by Frederic Crozat
Diffstat (limited to 'src/tty-ask-password-agent.c')
-rw-r--r-- | 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 b620aa6ee3..38442f66bd 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); |