You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Dean Gaudet <dg...@arctic.org> on 1997/12/18 21:08:09 UTC

[PATCH] two bugs in mod_autoindex

"AddIconByType (TXT,/icons/text.gif text/*", note the missing closing
paren, does the wrong thing, and doesn't report an error.

Don't fread() without testing for errors. 

Dean

Index: modules/standard/mod_autoindex.c
===================================================================
RCS file: /export/home/cvs/apachen/src/modules/standard/mod_autoindex.c,v
retrieving revision 1.59
diff -u -r1.59 mod_autoindex.c
--- mod_autoindex.c	1997/12/18 19:55:17	1.59
+++ mod_autoindex.c	1997/12/18 20:03:08
@@ -186,8 +186,14 @@
     char *iconbak = pstrdup(cmd->pool, icon);
 
     if (icon[0] == '(') {
-	char *alt = getword_nc(cmd->pool, &iconbak, ',');
-	iconbak[strlen(iconbak) - 1] = '\0';	/* Lose closing paren */
+	char *alt;
+	char *cl = strchr(iconbak, ')');
+
+	if (cl == NULL) {
+	    return "missing closing paren";
+	}
+	alt = getword_nc(cmd->pool, &iconbak, ',');
+	*cl = '\0';				/* Lose closing paren */
 	add_alt(cmd, d, &alt[1], to);
     }
     if (cmd->info == BY_PATH)
@@ -612,6 +618,10 @@
 	if (!(thefile = pfopen(r->pool, r->filename, "r")))
 	         return NULL;
 	n = fread(titlebuf, sizeof(char), MAX_STRING_LEN - 1, thefile);
+	if (n <= 0) {
+	    pfclose(r->pool, thefile);
+	    return NULL;
+	}
 	titlebuf[n] = '\0';
 	for (x = 0, p = 0; titlebuf[x]; x++) {
 	    if (toupper(titlebuf[x]) == find[p]) {