diff options
Diffstat (limited to 'contrib/wpa_supplicant/radius.c')
-rw-r--r-- | contrib/wpa_supplicant/radius.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/wpa_supplicant/radius.c b/contrib/wpa_supplicant/radius.c index 743f3400f1de..afa4f933ee98 100644 --- a/contrib/wpa_supplicant/radius.c +++ b/contrib/wpa_supplicant/radius.c @@ -801,6 +801,7 @@ static u8 * decrypt_ms_key(const u8 *key, size_t len, ppos = plain = os_malloc(plen); if (plain == NULL) return NULL; + plain[0] = 0; while (left > 0) { /* b(1) = MD5(Secret + Request-Authenticator + Salt) @@ -825,7 +826,7 @@ static u8 * decrypt_ms_key(const u8 *key, size_t len, left -= MD5_MAC_LEN; } - if (plain[0] > plen - 1) { + if (plain[0] == 0 || plain[0] > plen - 1) { printf("Failed to decrypt MPPE key\n"); os_free(plain); return NULL; |