]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
More minor length fixes in fr_radius_ascend_secret
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 8 Nov 2020 14:55:03 +0000 (08:55 -0600)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 8 Nov 2020 14:55:03 +0000 (08:55 -0600)
src/protocols/radius/base.c
src/protocols/radius/radius.h

index dcb5cc601e37cfd3c6b6fdfbba89cad134dfb963..b628b16983317b29c741a24dbc7a7948b9760d80 100644 (file)
@@ -231,7 +231,7 @@ size_t fr_radius_attr_len(fr_pair_t const *vp)
  * encrypting passwords to RADIUS.
  */
 ssize_t fr_radius_ascend_secret(fr_dbuff_t *dbuff, uint8_t const *in, size_t inlen,
-                               char const *secret, uint8_t const *vector)
+                               char const *secret, uint8_t const vector[static RADIUS_AUTH_VECTOR_LENGTH])
 {
        fr_md5_ctx_t            *md5_ctx;
        size_t                  i;
@@ -246,7 +246,7 @@ ssize_t fr_radius_ascend_secret(fr_dbuff_t *dbuff, uint8_t const *in, size_t inl
        fr_md5_final(digest, md5_ctx);
        fr_md5_ctx_free(&md5_ctx);
 
-       if (inlen > RADIUS_AUTH_VECTOR_LENGTH) inlen = RADIUS_AUTH_VECTOR_LENGTH;
+       if (inlen > sizeof(digest)) inlen = sizeof(digest);
        for (i = 0; i < inlen; i++) digest[i] ^= in[i];
 
        fr_dbuff_memcpy_in(&work_dbuff, digest, sizeof(digest));
index 54024884146ccebd1aa8ac5fc4327a09c61a523c..7eb0aff576918be3e292e9a0f8e07af5115f5b7a 100644 (file)
@@ -119,7 +119,7 @@ bool                fr_radius_ok(uint8_t const *packet, size_t *packet_len_p,
                             uint32_t max_attributes, bool require_ma, decode_fail_t *reason) CC_HINT(nonnull (1,2));
 
 ssize_t                fr_radius_ascend_secret(fr_dbuff_t *dbuff, uint8_t const *in, size_t inlen,
-                                       char const *secret, uint8_t const *vector);
+                                       char const *secret, uint8_t const vector[static RADIUS_AUTH_VECTOR_LENGTH]);
 
 ssize_t                fr_radius_recv_header(int sockfd, fr_ipaddr_t *src_ipaddr, uint16_t *src_port, unsigned int *code);