Browse Source

digest_auth_check(): added check for too large realm value

Evgeny Grin (Karlson2k) 3 năm trước cách đây
mục cha
commit
961635da2a
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  1. 3 0
      src/microhttpd/digestauth.c

+ 3 - 0
src/microhttpd/digestauth.c

@@ -1973,6 +1973,9 @@ digest_auth_check_all_inner (struct MHD_Connection *connection,
 
   if (NULL == params->realm.value.str)
     return MHD_DAUTH_WRONG_HEADER;
+  else if (((NULL == digest) || params->userhash) &&
+           (_MHD_AUTH_DIGEST_MAX_PARAM_SIZE < params->realm.value.len))
+    return MHD_DAUTH_TOO_LARGE; /* Realm is too large and it will be used in hash calculations */
 
   if (NULL == params->nc.value.str)
     return MHD_DAUTH_WRONG_HEADER;