[PATCH] block/nfs: fix int overflow in nfs_client_open_qdict

Peter Lieven posted 1 patch 3 years, 4 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20201209121735.16437-1-pl@kamp.de
Maintainers: Peter Lieven <pl@kamp.de>, Max Reitz <mreitz@redhat.com>, Kevin Wolf <kwolf@redhat.com>
block/nfs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] block/nfs: fix int overflow in nfs_client_open_qdict
Posted by Peter Lieven 3 years, 4 months ago
nfs_client_open returns the file size in sectors. This effectively
makes it impossible to open files larger than 1TB.

Fixes: a1a42af422d46812f1f0cebe6b230c20409a3731
Cc: qemu-stable@nongnu.org
Signed-off-by: Peter Lieven <pl@kamp.de>
---
 block/nfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/block/nfs.c b/block/nfs.c
index 77905f516d..8c1968bb41 100644
--- a/block/nfs.c
+++ b/block/nfs.c
@@ -592,7 +592,7 @@ static int64_t nfs_client_open_qdict(NFSClient *client, QDict *options,
                                      int flags, int open_flags, Error **errp)
 {
     BlockdevOptionsNfs *opts;
-    int ret;
+    int64_t ret;
 
     opts = nfs_options_qdict_to_qapi(options, errp);
     if (opts == NULL) {
-- 
2.17.1



Re: [PATCH] block/nfs: fix int overflow in nfs_client_open_qdict
Posted by Stefano Garzarella 3 years, 4 months ago
On Wed, Dec 09, 2020 at 01:17:35PM +0100, Peter Lieven wrote:
>nfs_client_open returns the file size in sectors. This effectively
>makes it impossible to open files larger than 1TB.
>
>Fixes: a1a42af422d46812f1f0cebe6b230c20409a3731
>Cc: qemu-stable@nongnu.org
>Signed-off-by: Peter Lieven <pl@kamp.de>
>---
> block/nfs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

The issue seems to be pre-existing to the commit 
a1a42af422d46812f1f0cebe6b230c20409a3731, but of course that commit 
touched this code and this patch would not apply before, so it seems 
okay to me:

Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>

Thanks,
Stefano

>
>diff --git a/block/nfs.c b/block/nfs.c
>index 77905f516d..8c1968bb41 100644
>--- a/block/nfs.c
>+++ b/block/nfs.c
>@@ -592,7 +592,7 @@ static int64_t nfs_client_open_qdict(NFSClient *client, QDict *options,
>                                      int flags, int open_flags, Error **errp)
> {
>     BlockdevOptionsNfs *opts;
>-    int ret;
>+    int64_t ret;
>
>     opts = nfs_options_qdict_to_qapi(options, errp);
>     if (opts == NULL) {
>-- 
>2.17.1
>
>
>


Re: [PATCH] block/nfs: fix int overflow in nfs_client_open_qdict
Posted by Kevin Wolf 3 years, 4 months ago
Am 10.12.2020 um 10:00 hat Stefano Garzarella geschrieben:
> On Wed, Dec 09, 2020 at 01:17:35PM +0100, Peter Lieven wrote:
> > nfs_client_open returns the file size in sectors. This effectively
> > makes it impossible to open files larger than 1TB.
> > 
> > Fixes: a1a42af422d46812f1f0cebe6b230c20409a3731
> > Cc: qemu-stable@nongnu.org
> > Signed-off-by: Peter Lieven <pl@kamp.de>
> > ---
> > block/nfs.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> The issue seems to be pre-existing to the commit
> a1a42af422d46812f1f0cebe6b230c20409a3731, but of course that commit touched
> this code and this patch would not apply before, so it seems okay to me:

I think it's commit c22a0345, which is the one right before a1a42af4.
I'll update the commit message accordingly.

> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>

Thanks, applied to the block branch.

Kevin