X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fplugins%2Fradius%2Fsendserver.c;h=f6012868e2dbbbcb6de5f3a4806088d0c9f761a9;hb=92c5612fdb77e83e49c524ae46110c129e13429e;hp=0c0ef30f8d37f41309cc395a9d3fad5153130f08;hpb=b5599f6001d9b024b3a572ab62c92027d94f052f;p=ppp.git diff --git a/pppd/plugins/radius/sendserver.c b/pppd/plugins/radius/sendserver.c index 0c0ef30..f601286 100644 --- a/pppd/plugins/radius/sendserver.c +++ b/pppd/plugins/radius/sendserver.c @@ -104,7 +104,7 @@ static int rc_pack_list (VALUE_PAIR *vp, char *secret, AUTH_HDR *auth) memcpy ((char *) passbuf, vp->strvalue, (size_t) length); secretlen = strlen (secret); - vector = (char *)auth->vector; + vector = auth->vector; for(i = 0; i < padded_length; i += AUTH_VECTOR_LEN) { /* Calculate the MD5 digest*/ strcpy ((char *) md5buf, secret); @@ -200,10 +200,10 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info) AUTH_HDR *auth, *recv_auth; UINT4 auth_ipaddr; char *server_name; /* Name of server to query */ - int salen; + socklen_t salen; int result; int total_length; - int length; + socklen_t length; int retry_max; int secretlen; char secret[MAX_SECRET_LENGTH + 1]; @@ -228,6 +228,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info) { if (rc_find_server (server_name, &auth_ipaddr, secret) != 0) { + memset (secret, '\0', sizeof (secret)); return (ERROR_RC); } } @@ -272,7 +273,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info) memset((char *) auth->vector, 0, AUTH_VECTOR_LEN); secretlen = strlen (secret); memcpy ((char *) auth + total_length, secret, secretlen); - rc_md5_calc (vector, (char *) auth, total_length + secretlen); + rc_md5_calc (vector, (unsigned char *) auth, total_length + secretlen); memcpy ((char *) auth->vector, (char *) vector, AUTH_VECTOR_LEN); } else @@ -362,7 +363,7 @@ int rc_send_server (SEND_DATA *data, char *msg, REQUEST_INFO *info) { if ((vp = rc_avpair_get(vp, PW_REPLY_MESSAGE))) { - strcat(msg, vp->strvalue); + strcat(msg, (char*) vp->strvalue); strcat(msg, "\n"); vp = vp->next; } @@ -428,7 +429,7 @@ static int rc_check_reply (AUTH_HDR *auth, int bufferlen, char *secret, memcpy ((char *) reply_digest, (char *) auth->vector, AUTH_VECTOR_LEN); memcpy ((char *) auth->vector, (char *) vector, AUTH_VECTOR_LEN); memcpy ((char *) auth + totallen, secret, secretlen); - rc_md5_calc (calc_digest, (char *) auth, totallen + secretlen); + rc_md5_calc (calc_digest, (unsigned char *) auth, totallen + secretlen); #ifdef DIGEST_DEBUG {