diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2020-05-07 23:42:12 +1000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2020-05-15 16:24:38 +1000 |
commit | 3e3e7af1a49273a5e49d50565b3b079a2ab19142 (patch) | |
tree | e39ad4bc65d7d7cb13f0d0c8d2b2b595bff40be4 /src/var.c | |
parent | input: Fix compiling against libedit with -fno-common (diff) | |
download | dash-3e3e7af1a49273a5e49d50565b3b079a2ab19142.tar.gz dash-3e3e7af1a49273a5e49d50565b3b079a2ab19142.zip |
shell: Always use explicit large file API
There are some remaining stat/readdir calls in dash that may lead to spurious EOVERFLOW errors on 32-bit platforms. This patch changes them (as well as open(2)) to use the explicit large file API. Reported-by: Tatsuki Sugiura <sugi@nemui.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/var.c')
-rw-r--r-- | src/var.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/var.c b/src/var.c index b146018..ef9c2bd 100644 --- a/src/var.c +++ b/src/var.c @@ -125,7 +125,7 @@ INIT { char **envp; static char ppid[32] = "PPID="; const char *p; - struct stat st1, st2; + struct stat64 st1, st2; initvar(); for (envp = environ ; *envp ; envp++) { @@ -143,7 +143,7 @@ INIT { p = lookupvar("PWD"); if (p) - if (*p != '/' || stat(p, &st1) || stat(".", &st2) || + if (*p != '/' || stat64(p, &st1) || stat64(".", &st2) || st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino) p = 0; setpwd(p, 0); |