2020-04-16 21:38:34

by Trond Myklebust

[permalink] [raw]
Subject: [PATCH] Fix a buffer overflow in qword_add()

From: Trond Myklebust <[email protected]>

Don't allow writing beyond the end of the buffer.

Signed-off-by: Trond Myklebust <[email protected]>
---
support/nfs/cacheio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
index 126c12831668..70ead94d64f0 100644
--- a/support/nfs/cacheio.c
+++ b/support/nfs/cacheio.c
@@ -42,7 +42,7 @@ void qword_add(char **bpp, int *lp, char *str)

if (len < 0) return;

- while ((c=*str++) && len)
+ while ((c=*str++) && len > 0)
switch(c) {
case ' ':
case '\t':
--
2.25.2


2020-05-08 14:13:23

by Steve Dickson

[permalink] [raw]
Subject: Re: [PATCH] Fix a buffer overflow in qword_add()



On 4/16/20 5:34 PM, [email protected] wrote:
> From: Trond Myklebust <[email protected]>
>
> Don't allow writing beyond the end of the buffer.
>
> Signed-off-by: Trond Myklebust <[email protected]>
Committed... (tag: nfs-utils-2-4-4-rc4)

steved.

> ---
> support/nfs/cacheio.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/support/nfs/cacheio.c b/support/nfs/cacheio.c
> index 126c12831668..70ead94d64f0 100644
> --- a/support/nfs/cacheio.c
> +++ b/support/nfs/cacheio.c
> @@ -42,7 +42,7 @@ void qword_add(char **bpp, int *lp, char *str)
>
> if (len < 0) return;
>
> - while ((c=*str++) && len)
> + while ((c=*str++) && len > 0)
> switch(c) {
> case ' ':
> case '\t':
>