diff options
author | 2009-11-11 13:23:01 +0000 | |
---|---|---|
committer | 2009-11-11 13:23:01 +0000 | |
commit | 3da798872d93b3f87fdf209543b0305be733d500 (patch) | |
tree | 51b4f7eb30522d092e6f5e5a35de10341edec16e /usr.sbin/tcpdump/print-ipsec.c | |
parent | don't leak memory in an error case. (diff) | |
download | wireguard-openbsd-3da798872d93b3f87fdf209543b0305be733d500.tar.xz wireguard-openbsd-3da798872d93b3f87fdf209543b0305be733d500.zip |
Don't leak memory in error case.
Found by parfait.
Diffstat (limited to 'usr.sbin/tcpdump/print-ipsec.c')
-rw-r--r-- | usr.sbin/tcpdump/print-ipsec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/usr.sbin/tcpdump/print-ipsec.c b/usr.sbin/tcpdump/print-ipsec.c index dd6204a3c88..5e332fd5658 100644 --- a/usr.sbin/tcpdump/print-ipsec.c +++ b/usr.sbin/tcpdump/print-ipsec.c @@ -1,4 +1,4 @@ -/* $OpenBSD: print-ipsec.c,v 1.14 2009/10/27 23:59:55 deraadt Exp $ */ +/* $OpenBSD: print-ipsec.c,v 1.15 2009/11/11 13:23:01 jsg Exp $ */ /* * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999 @@ -104,8 +104,10 @@ esp_init (char *espspec) s[0] = espkey[2*i]; s[1] = espkey[2*i + 1]; s[2] = 0; - if (!isxdigit(s[0]) || !isxdigit(s[1])) + if (!isxdigit(s[0]) || !isxdigit(s[1])) { + free(key); error("espkey must be specified in hex"); + } key[i] = strtoul(s, NULL, 16); } EVP_CIPHER_CTX_init(&ctx); |