From: Rich Felker Date: Sun, 16 Sep 2018 12:40:46 +0000 (-0400) Subject: fix failure of getdelim to set stream orientation on error X-Git-Tag: v1.1.21~87 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5cd309f0cc3c92f3fabbaa499652a8329137c4de;p=oweals%2Fmusl.git fix failure of getdelim to set stream orientation on error if EINVAL or ENOMEM happened before the first getc_unlocked, it was possible that the stream orientation had not yet been set. --- diff --git a/src/stdio/getdelim.c b/src/stdio/getdelim.c index 26a56780..60c6cc18 100644 --- a/src/stdio/getdelim.c +++ b/src/stdio/getdelim.c @@ -15,6 +15,7 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric FLOCK(f); if (!n || !s) { + f->mode |= f->mode-1; f->flags |= F_ERR; FUNLOCK(f); errno = EINVAL; @@ -58,6 +59,7 @@ ssize_t getdelim(char **restrict s, size_t *restrict n, int delim, FILE *restric return i; oom: + f->mode |= f->mode-1; f->flags |= F_ERR; FUNLOCK(f); errno = ENOMEM;