summaryrefslogtreecommitdiff
path: root/libdiskfs
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-10-02 20:30:15 +0200
committerRichard Braun <rbraun@sceen.net>2013-10-02 20:30:15 +0200
commit6c3825f2b750bf9b913c6ea986739e648c470603 (patch)
tree668999faf31004dd9100a8a08eef7c4087b87dab /libdiskfs
parenta81c0c28ea606b0d0a2ad5eeb74071c746b7cdeb (diff)
Check for negative sizes in file_set_size
* libdiskfs/file-set-size.c (diskfs_S_file_set_size): Return EINVAL if size is negative. * libnetfs/file-set-size.c (netfs_S_file_set_size): Likewise. * libtreefs/s-file.c (treefs_S_file_set_size): Likewise. * storeio/io.c (trivfs_S_file_set_size): Likewise. * term/users.c (trivfs_S_file_set_size): Likewise. * trans/null.c (trivfs_S_file_set_size): Likewise. * trans/streamio.c (trivfs_S_file_set_size): Likewise.
Diffstat (limited to 'libdiskfs')
-rw-r--r--libdiskfs/file-set-size.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libdiskfs/file-set-size.c b/libdiskfs/file-set-size.c
index 18abb469..fe2125ae 100644
--- a/libdiskfs/file-set-size.c
+++ b/libdiskfs/file-set-size.c
@@ -26,7 +26,7 @@ diskfs_S_file_set_size (struct protid *cred,
{
CHANGE_NODE_FIELD (cred,
({
- if (!(cred->po->openstat & O_WRITE))
+ if (!(cred->po->openstat & O_WRITE) || (size < 0))
err = EINVAL;
else if (size < np->dn_stat.st_size)
{