Sophie

Sophie

distrib > * > 2008.0 > x86_64 > by-pkgid > 2a1fb07aca6cd99d018df451bfce66ad > files > 1

hobbit-4.2.0-5mdv2008.0.src.rpm

--- lib/stackio.c	2006/07/20 16:06:41	1.20
+++ lib/stackio.c	2006/11/22 15:36:31
@@ -388,15 +388,17 @@
 
 	closedir(dirfd);
 
-	if (fnsz) qsort(fnames, fnsz, sizeof(char *), namecompare);
-	for (i=0; (i<fnsz); i++) {
-		htnames_t *newitem = malloc(sizeof(htnames_t));
-		newitem->name = fnames[i];
-		newitem->next = fnlist;
-		fnlist = newitem;
-	}
+	if (fnsz) {
+		qsort(fnames, fnsz, sizeof(char *), namecompare);
+		for (i=0; (i<fnsz); i++) {
+			htnames_t *newitem = malloc(sizeof(htnames_t));
+			newitem->name = fnames[i];
+			newitem->next = fnlist;
+			fnlist = newitem;
+		}
 
-	xfree(fnames);
+		xfree(fnames);
+	}
 }
 
 char *stackfgets(strbuffer_t *buffer, char *extraincl)
@@ -438,7 +440,7 @@
 				xfree(tmp->name); xfree(tmp);
 				return stackfgets(buffer, extraincl);
 			}
-			else {
+			else if (fnlist) {
 				htnames_t *tmp = fnlist;
 
 				errprintf("WARNING: Cannot open include file '%s', line was:%s\n", fnlist->name, buffer);
@@ -447,6 +449,11 @@
 				if (eol) *eol = '\n';
 				return result;
 			}
+			else {
+				/* Empty directory include - return a blank line */
+				*result = '\0'; 
+				return result;
+			}
 		}
 	}
 	else if (result == NULL) {