[PATCH] PPC: in celleb_show_cpuinfo() convert strncpy(x, y, sizeof(x)) to strlcpy
From: Roel Kluin <hidden>
Date: 2008-03-06 13:16:42
Subsystems: linux for powerpc (32-bit and 64-bit), the rest
4 messages, 3 authors, 2008-03-07 · open the first message on its own page
From: Roel Kluin <hidden>
Date: 2008-03-06 13:16:42
This patch was not yet tested. Please confirm it's right. --- strncpy does not append '\0' if the length of the source string equals the size parameter, strlcpy does. Signed-off-by: Roel Kluin <redacted> ---
diff --git a/arch/powerpc/platforms/celleb/setup.c b/arch/powerpc/platforms/celleb/setup.c
index f27ae1e..d70fc53 100644
--- a/arch/powerpc/platforms/celleb/setup.c
+++ b/arch/powerpc/platforms/celleb/setup.c@@ -81,7 +81,7 @@ static void celleb_show_cpuinfo(struct seq_file *m) static int __init celleb_machine_type_hack(char *ptr) { - strncpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); + strlcpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); celleb_machine_type[sizeof(celleb_machine_type)-1] = 0; return 0; }
From: Roel Kluin <hidden>
Date: 2008-03-06 13:20:27
Roel Kluin wrote:
This patch was not yet tested. Please confirm it's right.
was too quick with the send button. the batch below is probably better --- strncpy does not append '\0' if the length of the source string equals the size parameter, strlcpy does. Signed-off-by: Roel Kluin <redacted> ---
diff --git a/arch/powerpc/platforms/celleb/setup.c b/arch/powerpc/platforms/celleb/setup.c
index f27ae1e..cbe09d9 100644
--- a/arch/powerpc/platforms/celleb/setup.c
+++ b/arch/powerpc/platforms/celleb/setup.c@@ -81,8 +81,7 @@ static void celleb_show_cpuinfo(struct seq_file *m) static int __init celleb_machine_type_hack(char *ptr) { - strncpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); - celleb_machine_type[sizeof(celleb_machine_type)-1] = 0; + strlcpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); return 0; }
From: Segher Boessenkool <hidden>
Date: 2008-03-06 15:45:18
This patch was not yet tested. Please confirm it's right. --- strncpy does not append '\0' if the length of the source string equals the size parameter, strlcpy does.
strlcpy() doesn't fill the rest of the array with zeroes, strncpy() does. This could matter (information leak, for example), although I doubt it does here.
- strncpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); + strlcpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); celleb_machine_type[sizeof(celleb_machine_type)-1] = 0;
That last statement makes the strncpy() case always zero-terminated, so this patch isn't necessary. Oh, and neither the old nor the new code handles the case where the string doesn't fit (other than just cutting it short); is that the wanted behaviour? Segher
From: Ishizaki Kou <hidden>
Date: 2008-03-07 08:15:08
Roel Kluin [off-list ref] wrote:
Roel Kluin wrote:quoted
This patch was not yet tested. Please confirm it's right.was too quick with the send button. the batch below is probably better --- strncpy does not append '\0' if the length of the source string equals the size parameter, strlcpy does. Signed-off-by: Roel Kluin <redacted>
Acked-by: Kou Ishizaki <redacted> I tested Roel's 2nd patch and it works good on Celleb.
---diff --git a/arch/powerpc/platforms/celleb/setup.c b/arch/powerpc/platforms/celleb/setup.c index f27ae1e..cbe09d9 100644 --- a/arch/powerpc/platforms/celleb/setup.c +++ b/arch/powerpc/platforms/celleb/setup.c@@ -81,8 +81,7 @@ static void celleb_show_cpuinfo(struct seq_file *m) static int __init celleb_machine_type_hack(char *ptr) { - strncpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); - celleb_machine_type[sizeof(celleb_machine_type)-1] = 0; + strlcpy(celleb_machine_type, ptr, sizeof(celleb_machine_type)); return 0; }_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev