Browse Source

Fix nasty behavior difference from glibc -- also fixes getline()
-Erik

Eric Andersen 23 years ago
parent
commit
db20984e9b
1 changed files with 2 additions and 3 deletions
  1. 2 3
      libc/stdio/getdelim.c

+ 2 - 3
libc/stdio/getdelim.c

@@ -41,13 +41,12 @@ ssize_t getdelim(char **linebuf, size_t *linebufsz, int delimiter, FILE *file)
 	int ch;
 	int idx = 0;
 
-	if ((file == NULL || linebuf==NULL || *linebuf == NULL || *linebufsz == 0)
-			&& !(*linebuf == NULL && *linebufsz ==0 )) {
+	if (file == NULL || linebuf==NULL || linebufsz == NULL) {
 	    __set_errno(EINVAL);
 	    return -1;
 	}
 
-	if (*linebuf == NULL && *linebufsz == 0){
+	if (*linebuf == NULL || *linebufsz < 2) {
 		*linebuf = malloc(GROWBY);
 		if (!*linebuf) {
 			__set_errno(ENOMEM);