Thread (8 messages) flat view 8 messages, 2 authors, 2013-04-24

Re: [PATCH] arch/powerpc/kernel: using %12.12s instead of %12s for avoiding memory overflow.

From: Chen Gang <hidden>
Date: 2013-04-24 08:32:31
Also in: lkml

On 2013年04月24日 16:19, Vasant Hegde wrote:
quoted
quoted
quoted
quoted
quoted
    for tmp_part->header.name:
quoted
quoted
quoted
quoted
quoted
      it is "Terminating null required only for names<   12 chars".
      so need to limit the %.12s for it in printk

    additional info:

      %12s  limit the width, not for the original string output length
            if name length is more than 12, it still can be fully displayed.
            if name length is less than 12, the ' ' will be filled before name.

      %.12s truly limit the original string output length (precision)


Signed-off-by: Chen Gang<redacted>
---
   arch/powerpc/kernel/nvram_64.c |    2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index bec1e93..57bf6d2 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c
@@ -202,7 +202,7 @@ static void __init nvram_print_partitions(char * label)
   	printk(KERN_WARNING "--------%s---------\n", label);
   	printk(KERN_WARNING "indx\t\tsig\tchks\tlen\tname\n");
   	list_for_each_entry(tmp_part,&nvram_partitions, partition) {
-		printk(KERN_WARNING "%4d    \t%02x\t%02x\t%d\t%12s\n",
+		printk(KERN_WARNING "%4d    \t%02x\t%02x\t%d\t%12.12s\n",
First, this code in inside NVRAM_DEBUG which is used only for debug purpose and
AFAIK, all partition names are less than 20 character. So I don't think we need
Sorry.. I meant 12 character.
Please see line 283:
  "strncpy(part->header.name, "wwwwwwwwwwww", 12);"
  (it is not a NUL terminated string, and the length is 12)

And also, can we be sure that all partition names should be less than 12
characters ?

All together, I think we still need %12.12s to protect the memory.

Thanks.

-- 
Chen Gang

Asianux Corporation
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help