X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fchap_ms.c;h=ffb6bd13c1ef45bc4956db1ee6bf494576444df0;hb=115c4194d63974dd83b8fbbd69a623f7ae88b313;hp=016b42e0c10ee9a845a3e96ad8aa55dcb2b0464c;hpb=08ef47ca532294eb428238c831616748940e24a2;p=ppp.git diff --git a/pppd/chap_ms.c b/pppd/chap_ms.c index 016b42e..ffb6bd1 100644 --- a/pppd/chap_ms.c +++ b/pppd/chap_ms.c @@ -94,7 +94,6 @@ #include "pppcrypt.h" #include "magic.h" -static const char rcsid[] = RCSID; static void ascii2unicode __P((char[], int, u_char[])); @@ -382,7 +381,7 @@ chapms2_make_response(unsigned char *response, int id, char *our_name, unsigned char *private) { const struct chapms2_response_cache_entry *cache_entry; - unsigned char auth_response[MS_AUTH_RESPONSE_LENGTH]; + unsigned char auth_response[MS_AUTH_RESPONSE_LENGTH+1]; challenge++; /* skip length, should be 16 */ *response++ = MS_CHAP2_RESPONSE_LEN; @@ -424,6 +423,8 @@ chapms2_check_success(int id, unsigned char *msg, int len) len -= MS_AUTH_RESPONSE_LENGTH; if ((len >= 3) && !strncmp((char *)msg, " M=", 3)) { msg += 3; /* Eat the delimiter */ + } else if ((len >= 2) && !strncmp((char *)msg, "M=", 2)) { + msg += 2; /* Eat the delimiter */ } else if (len) { /* Packet has extra text which does not begin " M=" */ error("MS-CHAPv2 Success packet is badly formed.");