diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-01 01:46:08 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-11-01 01:46:08 +0300 |
commit | b141b9b512f0faa01624bf384046439abc9b2850 (patch) | |
tree | 3a83675d2871e1e74168e2ffef9e9f4bed509b17 /libbb | |
parent | 4126b1f5c6983b7c2dd4f92d635ab762d861c2d6 (diff) |
reads: fix bug 1078
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/read.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libbb/read.c b/libbb/read.c index 1c2945f45..b3648b4d7 100644 --- a/libbb/read.c +++ b/libbb/read.c @@ -86,7 +86,8 @@ char *reads(int fd, char *buffer, size_t size) if (p) { off_t offset; *p++ = '\0'; - offset = (p-buffer) - size; + // avoid incorrect (unsigned) widening + offset = (off_t)(p-buffer) - (off_t)size; // set fd position the right after the \n if (offset && lseek(fd, offset, SEEK_CUR) == (off_t)-1) return NULL; |