Copyright (C) 2006 OpenWrt.org
-diff -ruN busybox-1.3.1-old/networking/httpd.c busybox-1.3.1/networking/httpd.c
---- busybox-1.3.1-old/networking/httpd.c 2006-12-28 18:17:23.000000000 +0100
-+++ busybox-1.3.1/networking/httpd.c 2006-12-28 19:56:34.000000000 +0100
-@@ -1381,12 +1381,26 @@
+Index: busybox-1.7.2/networking/httpd.c
+===================================================================
+--- busybox-1.7.2.orig/networking/httpd.c 2007-09-30 01:54:12.000000000 +0200
++++ busybox-1.7.2/networking/httpd.c 2007-10-04 14:59:20.287304836 +0200
+@@ -1527,12 +1527,26 @@
if (ENABLE_FEATURE_HTTPD_AUTH_MD5) {
char *cipher;
char *pp;
+ char *ppnew = NULL;
+ struct passwd *pwd = NULL;
- if (strncmp(p, request, u-request) != 0) {
- /* user uncompared */
+ if (strncmp(p, request, u - request) != 0) {
+ /* user doesn't match */
continue;
}
pp = strchr(p, ':');
+ strcpy(ppnew + 1, pwd->pw_passwd);
+ pp = ppnew;
+ }
- if (pp && pp[1] == '$' && pp[2] == '1' &&
- pp[3] == '$' && pp[4]) {
- pp++;
-@@ -1396,6 +1410,10 @@
+ if (pp && pp[1] == '$' && pp[2] == '1'
+ && pp[3] == '$' && pp[4]
+ ) {
+@@ -1543,6 +1557,10 @@
/* unauthorized */
continue;
}