[PATCH] 9p: null terminate fs driver options list

P J P posted 1 patch 3 years, 8 months ago
Test checkpatch passed
Test docker-mingw@fedora passed
Test FreeBSD passed
Test docker-quick@centos7 passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200709175848.650400-1-ppandit@redhat.com
Maintainers: Christian Schoenebeck <qemu_oss@crudebyte.com>, Greg Kurz <groug@kaod.org>
fsdev/qemu-fsdev.c | 3 +++
1 file changed, 3 insertions(+)
[PATCH] 9p: null terminate fs driver options list
Posted by P J P 3 years, 8 months ago
From: Prasad J Pandit <pjp@fedoraproject.org>

NULL terminate fs driver options' list, validate_opt() looks for
a null entry to terminate the loop.

Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
---
 fsdev/qemu-fsdev.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c
index a9e069c0c7..3da64e9f72 100644
--- a/fsdev/qemu-fsdev.c
+++ b/fsdev/qemu-fsdev.c
@@ -78,6 +78,7 @@ static FsDriverTable FsDrivers[] = {
             "throttling.iops-read-max-length",
             "throttling.iops-write-max-length",
             "throttling.iops-size",
+            NULL
         },
     },
     {
@@ -85,6 +86,7 @@ static FsDriverTable FsDrivers[] = {
         .ops = &synth_ops,
         .opts = (const char * []) {
             COMMON_FS_DRIVER_OPTIONS,
+            NULL
         },
     },
     {
@@ -95,6 +97,7 @@ static FsDriverTable FsDrivers[] = {
             "socket",
             "sock_fd",
             "writeout",
+            NULL
         },
     },
 };
-- 
2.26.2


Re: [PATCH] 9p: null terminate fs driver options list
Posted by Li Qiang 3 years, 8 months ago
P J P <ppandit@redhat.com> 于2020年7月10日周五 上午2:01写道:
>
> From: Prasad J Pandit <pjp@fedoraproject.org>
>
> NULL terminate fs driver options' list, validate_opt() looks for
> a null entry to terminate the loop.
>
> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>

Reviewed-by: Li Qiang <liq3ea@gmail.com>

> ---
>  fsdev/qemu-fsdev.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c
> index a9e069c0c7..3da64e9f72 100644
> --- a/fsdev/qemu-fsdev.c
> +++ b/fsdev/qemu-fsdev.c
> @@ -78,6 +78,7 @@ static FsDriverTable FsDrivers[] = {
>              "throttling.iops-read-max-length",
>              "throttling.iops-write-max-length",
>              "throttling.iops-size",
> +            NULL
>          },
>      },
>      {
> @@ -85,6 +86,7 @@ static FsDriverTable FsDrivers[] = {
>          .ops = &synth_ops,
>          .opts = (const char * []) {
>              COMMON_FS_DRIVER_OPTIONS,
> +            NULL
>          },
>      },
>      {
> @@ -95,6 +97,7 @@ static FsDriverTable FsDrivers[] = {
>              "socket",
>              "sock_fd",
>              "writeout",
> +            NULL
>          },
>      },
>  };
> --
> 2.26.2
>
>

Re: [PATCH] 9p: null terminate fs driver options list
Posted by Greg Kurz 3 years, 8 months ago
On Thu,  9 Jul 2020 23:28:48 +0530
P J P <ppandit@redhat.com> wrote:

> From: Prasad J Pandit <pjp@fedoraproject.org>
> 
> NULL terminate fs driver options' list, validate_opt() looks for
> a null entry to terminate the loop.
> 

Good catch ! And this never bit us before because opt ends up
pointing to some valid memory containing zeroes... by luck :)

I've added a Fixes tag and applied this to the 9p-fix branch.

https://github.com/gkurz/qemu/commits/9p-fix

Cheers,

--
Greg

> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
> ---
>  fsdev/qemu-fsdev.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/fsdev/qemu-fsdev.c b/fsdev/qemu-fsdev.c
> index a9e069c0c7..3da64e9f72 100644
> --- a/fsdev/qemu-fsdev.c
> +++ b/fsdev/qemu-fsdev.c
> @@ -78,6 +78,7 @@ static FsDriverTable FsDrivers[] = {
>              "throttling.iops-read-max-length",
>              "throttling.iops-write-max-length",
>              "throttling.iops-size",
> +            NULL
>          },
>      },
>      {
> @@ -85,6 +86,7 @@ static FsDriverTable FsDrivers[] = {
>          .ops = &synth_ops,
>          .opts = (const char * []) {
>              COMMON_FS_DRIVER_OPTIONS,
> +            NULL
>          },
>      },
>      {
> @@ -95,6 +97,7 @@ static FsDriverTable FsDrivers[] = {
>              "socket",
>              "sock_fd",
>              "writeout",
> +            NULL
>          },
>      },
>  };