* [PATCH] selftests/powerpc: Fix strncpy usage
@ 2018-06-20 22:51 Breno Leitao
2018-06-21 23:18 ` Segher Boessenkool
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-20 22:51 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Breno Leitao, Anshuman Khandual
There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
third argument is the lengh of the source, not the size of the destination
buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
if argv[0] is bigger than LEN_MAX (100).
This patch simply limit the string copy to sizeof(prog) less 1 (space for \0).
CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
index 08a8b95e3bc1..638e0dc717d5 100644
--- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
+++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
@@ -104,6 +104,6 @@ int main(int argc, char *argv[])
exit(1);
}
- strncpy(prog, argv[0], strlen(argv[0]));
+ strncpy(prog, argv[0], sizeof(prog) - 1);
return test_harness(dscr_inherit_exec, "dscr_inherit_exec_test");
}
--
2.17.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-20 22:51 [PATCH] selftests/powerpc: Fix strncpy usage Breno Leitao
@ 2018-06-21 23:18 ` Segher Boessenkool
2018-06-22 14:43 ` Breno Leitao
2018-06-25 21:30 ` [PATCH v2] " Breno Leitao
2018-06-26 13:20 ` [PATCH v3 1/2] " Breno Leitao
2 siblings, 1 reply; 15+ messages in thread
From: Segher Boessenkool @ 2018-06-21 23:18 UTC (permalink / raw)
To: Breno Leitao; +Cc: linuxppc-dev, Anshuman Khandual
On Wed, Jun 20, 2018 at 07:51:11PM -0300, Breno Leitao wrote:
> - strncpy(prog, argv[0], strlen(argv[0]));
> + strncpy(prog, argv[0], sizeof(prog) - 1);
strncpy(prog, argv[0], sizeof prog);
if (prog[sizeof prog - 1])
scream_bloody_murder();
Silently using the wrong data is a worse habit than not checking for
overflows ;-)
Segher
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-21 23:18 ` Segher Boessenkool
@ 2018-06-22 14:43 ` Breno Leitao
2018-06-22 14:51 ` Christophe LEROY
` (2 more replies)
0 siblings, 3 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-22 14:43 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: linuxppc-dev, Anshuman Khandual
Hi Segher,
On 06/21/2018 08:18 PM, Segher Boessenkool wrote:
> On Wed, Jun 20, 2018 at 07:51:11PM -0300, Breno Leitao wrote:
>> - strncpy(prog, argv[0], strlen(argv[0]));
>> + strncpy(prog, argv[0], sizeof(prog) - 1);
>
> strncpy(prog, argv[0], sizeof prog);
> if (prog[sizeof prog - 1])
> scream_bloody_murder();
>
> Silently using the wrong data is a worse habit than not checking for
> overflows ;-)
Completely agree! Thanks for bringing this up.
If you don't mind, I would solve this problem slightly different, as it seems
to be more readable.
- strncpy(prog, argv[0], strlen(argv[0]));
+ if (strlen(argv[0]) >= LEN_MAX){
+ fprintf(stderr, "Very big executable name: %s\n", argv[0]);
+ return 1;
+ }
+
+ strncpy(prog, argv[0], sizeof(prog) - 1);
return test_harness(dscr_inherit_exec, "dscr_inherit_exec_test");
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-22 14:43 ` Breno Leitao
@ 2018-06-22 14:51 ` Christophe LEROY
2018-06-23 1:00 ` Segher Boessenkool
2018-06-22 15:15 ` Paul Clarke
2018-06-23 1:10 ` Segher Boessenkool
2 siblings, 1 reply; 15+ messages in thread
From: Christophe LEROY @ 2018-06-22 14:51 UTC (permalink / raw)
To: Breno Leitao, Segher Boessenkool; +Cc: linuxppc-dev, Anshuman Khandual
Le 22/06/2018 à 16:43, Breno Leitao a écrit :
> Hi Segher,
>
> On 06/21/2018 08:18 PM, Segher Boessenkool wrote:
>> On Wed, Jun 20, 2018 at 07:51:11PM -0300, Breno Leitao wrote:
>>> - strncpy(prog, argv[0], strlen(argv[0]));
>>> + strncpy(prog, argv[0], sizeof(prog) - 1);
>>
>> strncpy(prog, argv[0], sizeof prog);
>> if (prog[sizeof prog - 1])
>> scream_bloody_murder();
>>
>> Silently using the wrong data is a worse habit than not checking for
>> overflows ;-)
>
> Completely agree! Thanks for bringing this up.
>
> If you don't mind, I would solve this problem slightly different, as it seems
> to be more readable.
>
>
> - strncpy(prog, argv[0], strlen(argv[0]));
> + if (strlen(argv[0]) >= LEN_MAX){
wouldn't it be better to use sizeof(prog) instead of LEN_MAX ?
> + fprintf(stderr, "Very big executable name: %s\n", argv[0]);
> + return 1;
> + }
> +
> + strncpy(prog, argv[0], sizeof(prog) - 1);
You have checked before that argv[0] is not too long, so you should not
need to use strncpy(), strcpy() would do it.
> return test_harness(dscr_inherit_exec, "dscr_inherit_exec_test");
>
Christophe
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-22 14:43 ` Breno Leitao
2018-06-22 14:51 ` Christophe LEROY
@ 2018-06-22 15:15 ` Paul Clarke
2018-06-22 21:01 ` Al Dunsmuir
2018-06-23 1:10 ` Segher Boessenkool
2 siblings, 1 reply; 15+ messages in thread
From: Paul Clarke @ 2018-06-22 15:15 UTC (permalink / raw)
To: Breno Leitao, Segher Boessenkool; +Cc: linuxppc-dev, Anshuman Khandual
On 06/22/2018 09:43 AM, Breno Leitao wrote:
> If you don't mind, I would solve this problem slightly different, as it seems
> to be more readable.
>
> - strncpy(prog, argv[0], strlen(argv[0]));
> + if (strlen(argv[0]) >= LEN_MAX){
> + fprintf(stderr, "Very big executable name: %s\n", argv[0]);
"Very big" is an observation. "Too big" indicates a problem better. Or, more explicitly "Executable name is too long".
PC
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-22 15:15 ` Paul Clarke
@ 2018-06-22 21:01 ` Al Dunsmuir
0 siblings, 0 replies; 15+ messages in thread
From: Al Dunsmuir @ 2018-06-22 21:01 UTC (permalink / raw)
To: Paul Clarke, Breno Leitao, Segher Boessenkool
Cc: linuxppc-dev, Anshuman Khandual
On Friday, June 22, 2018, 11:15:29 AM, Paul Clarke wrote:
> On 06/22/2018 09:43 AM, Breno Leitao wrote:
>> If you don't mind, I would solve this problem slightly different, as it seems
>> to be more readable.
>>
>> - strncpy(prog, argv[0], strlen(argv[0]));
>> + if (strlen(argv[0]) >= LEN_MAX){
>> + fprintf(stderr, "Very big executable name: %s\n", argv[0]);
> "Very big" is an observation. "Too big" indicates a problem
> better. Or, more explicitly "Executable name is too long".
Or even better, display the limit that is being exceeded, in case that
value changes over time. Something like.
- strncpy(prog, argv[0], strlen(argv[0]));
+ if (strlen(argv[0]) >= LEN_MAX){
+ fprintf(stderr, "Executable name exceeds limit (%d): %s\n",
+ LEN_MAX,
+ argv[0]);
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-22 14:51 ` Christophe LEROY
@ 2018-06-23 1:00 ` Segher Boessenkool
0 siblings, 0 replies; 15+ messages in thread
From: Segher Boessenkool @ 2018-06-23 1:00 UTC (permalink / raw)
To: Christophe LEROY; +Cc: Breno Leitao, linuxppc-dev, Anshuman Khandual
On Fri, Jun 22, 2018 at 04:51:21PM +0200, Christophe LEROY wrote:
> Le 22/06/2018 à 16:43, Breno Leitao a écrit :
> >+ fprintf(stderr, "Very big executable name: %s\n", argv[0]);
> >+ return 1;
> >+ }
> >+
> >+ strncpy(prog, argv[0], sizeof(prog) - 1);
>
> You have checked before that argv[0] is not too long, so you should not
> need to use strncpy(), strcpy() would do it.
If you don't care about the bytes of prog after the first zero byte, sure.
Segher
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-22 14:43 ` Breno Leitao
2018-06-22 14:51 ` Christophe LEROY
2018-06-22 15:15 ` Paul Clarke
@ 2018-06-23 1:10 ` Segher Boessenkool
2018-06-25 21:21 ` Breno Leitao
2 siblings, 1 reply; 15+ messages in thread
From: Segher Boessenkool @ 2018-06-23 1:10 UTC (permalink / raw)
To: Breno Leitao; +Cc: linuxppc-dev, Anshuman Khandual
Hi!
On Fri, Jun 22, 2018 at 11:43:44AM -0300, Breno Leitao wrote:
> On 06/21/2018 08:18 PM, Segher Boessenkool wrote:
> > On Wed, Jun 20, 2018 at 07:51:11PM -0300, Breno Leitao wrote:
> >> - strncpy(prog, argv[0], strlen(argv[0]));
> >> + strncpy(prog, argv[0], sizeof(prog) - 1);
> >
> > strncpy(prog, argv[0], sizeof prog);
> > if (prog[sizeof prog - 1])
> > scream_bloody_murder();
> >
> > Silently using the wrong data is a worse habit than not checking for
> > overflows ;-)
>
> Completely agree! Thanks for bringing this up.
>
> If you don't mind, I would solve this problem slightly different, as it seems
> to be more readable.
>
> - strncpy(prog, argv[0], strlen(argv[0]));
> + if (strlen(argv[0]) >= LEN_MAX){
> + fprintf(stderr, "Very big executable name: %s\n", argv[0]);
> + return 1;
> + }
> +
> + strncpy(prog, argv[0], sizeof(prog) - 1);
The strlen reads all of argv[0], which can be very big in theory. It won't
matter in this test file -- program arguments cannot be super long, for one
thing -- but it's not a good idea in general (that is one of the problems
of strlcpy, btw).
Best of course is to avoid string length restrictions completely, if you can.
Segher
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH] selftests/powerpc: Fix strncpy usage
2018-06-23 1:10 ` Segher Boessenkool
@ 2018-06-25 21:21 ` Breno Leitao
0 siblings, 0 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-25 21:21 UTC (permalink / raw)
To: Segher Boessenkool; +Cc: linuxppc-dev, Anshuman Khandual
hi Segher,
On 06/22/2018 10:10 PM, Segher Boessenkool wrote:
>> - strncpy(prog, argv[0], strlen(argv[0]));
>> + if (strlen(argv[0]) >= LEN_MAX){
>> + fprintf(stderr, "Very big executable name: %s\n", argv[0]);
>> + return 1;
>> + }
>> +
>> + strncpy(prog, argv[0], sizeof(prog) - 1);
>
> The strlen reads all of argv[0], which can be very big in theory. It won't
> matter in this test file -- program arguments cannot be super long, for one
> thing -- but it's not a good idea in general (that is one of the problems
> of strlcpy, btw).
>
> Best of course is to avoid string length restrictions completely, if you can.
Right, I was thinking about this problem and there is no motivation to have a
statically allocated and limited region.
I will send a v2 where 'prog' and avoid this restriction completely.
Thanks
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v2] selftests/powerpc: Fix strncpy usage
2018-06-20 22:51 [PATCH] selftests/powerpc: Fix strncpy usage Breno Leitao
2018-06-21 23:18 ` Segher Boessenkool
@ 2018-06-25 21:30 ` Breno Leitao
2018-06-26 5:24 ` Michael Ellerman
2018-06-26 13:20 ` [PATCH v3 1/2] " Breno Leitao
2 siblings, 1 reply; 15+ messages in thread
From: Breno Leitao @ 2018-06-25 21:30 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Breno Leitao, Segher Boessenkool, Anshuman Khandual
There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
third argument is the length of the source, not the size of the destination
buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
if argv[0] is bigger than LEN_MAX (100).
This patch allocates 'prog' according to the argv[0] length, avoiding LEN_MAX
restriction.
CC: Segher Boessenkool <segher@kernel.crashing.org>
CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
index 08a8b95e3bc1..ecac4900c7dd 100644
--- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
+++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
@@ -19,7 +19,7 @@
*/
#include "dscr.h"
-static char prog[LEN_MAX];
+static char *prog;
static void do_exec(unsigned long parent_dscr)
{
@@ -104,6 +104,13 @@ int main(int argc, char *argv[])
exit(1);
}
- strncpy(prog, argv[0], strlen(argv[0]));
+ prog = malloc(strlen(argv[0]) + 1);
+ if (prog == NULL) {
+ fprintf(stderr, "Unable to allocate enough memory\n");
+ exit(1);
+ }
+
+ strcpy(prog, argv[0]);
+
return test_harness(dscr_inherit_exec, "dscr_inherit_exec_test");
}
--
2.16.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v2] selftests/powerpc: Fix strncpy usage
2018-06-25 21:30 ` [PATCH v2] " Breno Leitao
@ 2018-06-26 5:24 ` Michael Ellerman
2018-06-26 13:13 ` Breno Leitao
0 siblings, 1 reply; 15+ messages in thread
From: Michael Ellerman @ 2018-06-26 5:24 UTC (permalink / raw)
To: Breno Leitao, linuxppc-dev; +Cc: Breno Leitao, Anshuman Khandual
Breno Leitao <leitao@debian.org> writes:
> There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
> third argument is the length of the source, not the size of the destination
> buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
> if argv[0] is bigger than LEN_MAX (100).
>
> This patch allocates 'prog' according to the argv[0] length, avoiding LEN_MAX
> restriction.
>
> CC: Segher Boessenkool <segher@kernel.crashing.org>
> CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
> tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
> index 08a8b95e3bc1..ecac4900c7dd 100644
> --- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
> +++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
> @@ -19,7 +19,7 @@
> */
> #include "dscr.h"
>
> -static char prog[LEN_MAX];
> +static char *prog;
>
> static void do_exec(unsigned long parent_dscr)
> {
> @@ -104,6 +104,13 @@ int main(int argc, char *argv[])
> exit(1);
> }
>
> - strncpy(prog, argv[0], strlen(argv[0]));
> + prog = malloc(strlen(argv[0]) + 1);
> + if (prog == NULL) {
> + fprintf(stderr, "Unable to allocate enough memory\n");
> + exit(1);
> + }
> +
> + strcpy(prog, argv[0]);
Why do we need to copy it at all?
Can't we just save a pointer it? ie, prog = argv[0];
What am I missing?
cheers
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v2] selftests/powerpc: Fix strncpy usage
2018-06-26 5:24 ` Michael Ellerman
@ 2018-06-26 13:13 ` Breno Leitao
0 siblings, 0 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-26 13:13 UTC (permalink / raw)
To: Michael Ellerman, linuxppc-dev; +Cc: Anshuman Khandual
On 06/26/2018 02:24 AM, Michael Ellerman wrote:
> Breno Leitao <leitao@debian.org> writes:
>
>> There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
>> third argument is the length of the source, not the size of the destination
>> buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
>> if argv[0] is bigger than LEN_MAX (100).
>>
>> This patch allocates 'prog' according to the argv[0] length, avoiding LEN_MAX
>> restriction.
>>
>> CC: Segher Boessenkool <segher@kernel.crashing.org>
>> CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
>> Signed-off-by: Breno Leitao <leitao@debian.org>
>> ---
>> tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 11 +++++++++--
>> 1 file changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
>> index 08a8b95e3bc1..ecac4900c7dd 100644
>> --- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
>> +++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
>> @@ -19,7 +19,7 @@
>> */
>> #include "dscr.h"
>>
>> -static char prog[LEN_MAX];
>> +static char *prog;
>>
>> static void do_exec(unsigned long parent_dscr)
>> {
>> @@ -104,6 +104,13 @@ int main(int argc, char *argv[])
>> exit(1);
>> }
>>
>> - strncpy(prog, argv[0], strlen(argv[0]));
>> + prog = malloc(strlen(argv[0]) + 1);
>> + if (prog == NULL) {
>> + fprintf(stderr, "Unable to allocate enough memory\n");
>> + exit(1);
>> + }
>> +
>> + strcpy(prog, argv[0]);
>
> Why do we need to copy it at all?
We do not. Pointing proj to argv[0], as you proposed, should be the best
solution for this problem.
Thanks!
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v3 1/2] selftests/powerpc: Fix strncpy usage
2018-06-20 22:51 [PATCH] selftests/powerpc: Fix strncpy usage Breno Leitao
2018-06-21 23:18 ` Segher Boessenkool
2018-06-25 21:30 ` [PATCH v2] " Breno Leitao
@ 2018-06-26 13:20 ` Breno Leitao
2018-06-26 13:20 ` [PATCH v3 2/2] selftests/powerpc: Fix typos Breno Leitao
2018-07-11 13:24 ` [v3,1/2] selftests/powerpc: Fix strncpy usage Michael Ellerman
2 siblings, 2 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-26 13:20 UTC (permalink / raw)
To: linuxppc-dev
Cc: Breno Leitao, Michael Ellerman, Segher Boessenkool,
Anshuman Khandual
There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
third argument is the length of the source, not the size of the destination
buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
if argv[0] is bigger than LEN_MAX (100).
This patch maps 'prog' to the argv[0] memory region, removing the static
allocation and the LEN_MAX size restriction.
CC: Michael Ellerman <mpe@ellerman.id.au>
CC: Segher Boessenkool <segher@kernel.crashing.org>
CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
index 08a8b95e3bc1..55c55f39b6a6 100644
--- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
+++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
@@ -19,7 +19,7 @@
*/
#include "dscr.h"
-static char prog[LEN_MAX];
+static char *prog;
static void do_exec(unsigned long parent_dscr)
{
@@ -104,6 +104,6 @@ int main(int argc, char *argv[])
exit(1);
}
- strncpy(prog, argv[0], strlen(argv[0]));
+ prog = argv[0];
return test_harness(dscr_inherit_exec, "dscr_inherit_exec_test");
}
--
2.16.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v3 2/2] selftests/powerpc: Fix typos
2018-06-26 13:20 ` [PATCH v3 1/2] " Breno Leitao
@ 2018-06-26 13:20 ` Breno Leitao
2018-07-11 13:24 ` [v3,1/2] selftests/powerpc: Fix strncpy usage Michael Ellerman
1 sibling, 0 replies; 15+ messages in thread
From: Breno Leitao @ 2018-06-26 13:20 UTC (permalink / raw)
To: linuxppc-dev; +Cc: Breno Leitao, Gustavo Romero
Fix two typos in the file header. Replacing the word 'priviledged'
by 'privileged' and 'exuecuted' by 'executed'.
Signed-off-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Gustavo Romero <gromero@linux.vnet.ibm.com>
---
tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
index 55c55f39b6a6..c8c240accc0c 100644
--- a/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
+++ b/tools/testing/selftests/powerpc/dscr/dscr_inherit_exec_test.c
@@ -5,8 +5,8 @@
* verifies that the child is using the changed DSCR using mfspr.
*
* When using the privilege state SPR, the instructions such as
- * mfspr or mtspr are priviledged and the kernel emulates them
- * for us. Instructions using problem state SPR can be exuecuted
+ * mfspr or mtspr are privileged and the kernel emulates them
+ * for us. Instructions using problem state SPR can be executed
* directly without any emulation if the HW supports them. Else
* they also get emulated by the kernel.
*
--
2.16.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [v3,1/2] selftests/powerpc: Fix strncpy usage
2018-06-26 13:20 ` [PATCH v3 1/2] " Breno Leitao
2018-06-26 13:20 ` [PATCH v3 2/2] selftests/powerpc: Fix typos Breno Leitao
@ 2018-07-11 13:24 ` Michael Ellerman
1 sibling, 0 replies; 15+ messages in thread
From: Michael Ellerman @ 2018-07-11 13:24 UTC (permalink / raw)
To: Breno Leitao, linuxppc-dev; +Cc: Breno Leitao, Anshuman Khandual
On Tue, 2018-06-26 at 13:20:12 UTC, Breno Leitao wrote:
> There is a buffer overflow in dscr_inherit_test.c test. In main(), strncpy()'s
> third argument is the length of the source, not the size of the destination
> buffer, which makes strncpy() behaves like strcpy(), causing a buffer overflow
> if argv[0] is bigger than LEN_MAX (100).
>
> This patch maps 'prog' to the argv[0] memory region, removing the static
> allocation and the LEN_MAX size restriction.
>
> CC: Michael Ellerman <mpe@ellerman.id.au>
> CC: Segher Boessenkool <segher@kernel.crashing.org>
> CC: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> Signed-off-by: Breno Leitao <leitao@debian.org>
Series applied to powerpc next, thanks.
https://git.kernel.org/powerpc/c/09a61e894ac852fb063ee0b54fc513
cheers
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-07-11 13:24 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-20 22:51 [PATCH] selftests/powerpc: Fix strncpy usage Breno Leitao
2018-06-21 23:18 ` Segher Boessenkool
2018-06-22 14:43 ` Breno Leitao
2018-06-22 14:51 ` Christophe LEROY
2018-06-23 1:00 ` Segher Boessenkool
2018-06-22 15:15 ` Paul Clarke
2018-06-22 21:01 ` Al Dunsmuir
2018-06-23 1:10 ` Segher Boessenkool
2018-06-25 21:21 ` Breno Leitao
2018-06-25 21:30 ` [PATCH v2] " Breno Leitao
2018-06-26 5:24 ` Michael Ellerman
2018-06-26 13:13 ` Breno Leitao
2018-06-26 13:20 ` [PATCH v3 1/2] " Breno Leitao
2018-06-26 13:20 ` [PATCH v3 2/2] selftests/powerpc: Fix typos Breno Leitao
2018-07-11 13:24 ` [v3,1/2] selftests/powerpc: Fix strncpy usage Michael Ellerman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).