musl - musl - an implementation of the standard library for Linux-based systems

index : musl
musl - an implementation of the standard library for Linux-based systems
summary refs log tree commit diff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011年09月28日 19:37:14 -0400
committerRich Felker <dalias@aerifal.cx>2011年09月28日 19:37:14 -0400
commitede5ae7b0bb5a7ed9edeb2eeb8e24d30af64d185 (patch)
treeacb18b5c3b9953a8db8124337af1f5531687da9b
parent9cee9307e3b8ed31e772d564d1dc53e6d888acba (diff)
downloadmusl-ede5ae7b0bb5a7ed9edeb2eeb8e24d30af64d185.tar.gz
make getmntent_r discard long lines when it returns error, not seek back
seeking back can be performed by the caller, but if the caller doesn't expect it, it will result in an infinite loop of failures.
Diffstat
-rw-r--r--src/linux/mntent.c 3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/linux/mntent.c b/src/linux/mntent.c
index f1516252..3eafba5e 100644
--- a/src/linux/mntent.c
+++ b/src/linux/mntent.c
@@ -25,8 +25,7 @@ struct mntent *getmntent_r(FILE *f, struct mntent *mnt, char *linebuf, int bufle
fgets(linebuf, buflen, f);
if (feof(f) || ferror(f)) return 0;
if (!strchr(linebuf, '\n')) {
- if (fseeko(f, -(off_t)strlen(linebuf), SEEK_CUR))
- fscanf(f, "%*[^\n]%*[\n]");
+ fscanf(f, "%*[^\n]%*[\n]");
errno = ERANGE;
return 0;
}
generated by cgit v1.2.1 (git 2.18.0) at 2025年09月27日 23:05:23 +0000

AltStyle によって変換されたページ (->オリジナル) /