diff options
author | 2005-12-01 11:04:31 +0000 | |
---|---|---|
committer | 2005-12-01 11:04:31 +0000 | |
commit | 0d7ab77a4a9bec0bac85e1b05e3ca8fdd0c6d20f (patch) | |
tree | 0348ec53049866d3580ee90d18cbcb9ce35576ad | |
parent | Use egetcwd() in sandbox.c. (diff) | |
download | sandbox-0d7ab77a4a9bec0bac85e1b05e3ca8fdd0c6d20f.tar.gz sandbox-0d7ab77a4a9bec0bac85e1b05e3ca8fdd0c6d20f.tar.bz2 sandbox-0d7ab77a4a9bec0bac85e1b05e3ca8fdd0c6d20f.zip |
Rather use fstat() to get file size in file_length() than lseek().
Signed-off-by: Martin Schlemmer <azarah@gentoo.org>
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/sandbox_futils.c | 11 |
2 files changed, 8 insertions, 5 deletions
@@ -32,6 +32,8 @@ Use egetcwd() in sandbox.c. + Rather use fstat() to get file size in file_length() than lseek(). + 28 Nov 2005; Martin Schlemmer <azarah@gentoo.org> configure.in, sandbox.c, sandbox_fdutils.c: diff --git a/src/sandbox_futils.c b/src/sandbox_futils.c index 1971b94..e7854d5 100644 --- a/src/sandbox_futils.c +++ b/src/sandbox_futils.c @@ -153,13 +153,14 @@ int is_dir(const char *pathname, int follow_link) long file_length(int fd) { - long pos, len; + struct stat st; + int retval; - pos = lseek(fd, 0L, SEEK_CUR); - len = lseek(fd, 0L, SEEK_END); - lseek(fd, pos, SEEK_SET); + retval = fstat(fd, &st); + if (retval < 0) + return 0; - return (len); + return (st.st_size); } #endif /* OUTSIDE_LIBSANDBOX */ |