Thread (6 messages) 6 messages, 4 authors, 2023-08-23

Re: [PATCH] partitions/ibm: refactor deprecated strncpy

From: Jens Axboe <axboe@kernel.dk>
Date: 2023-08-23 14:14:25
Also in: linux-hardening, linux-s390, lkml

On 8/23/23 8:13 AM, Heiko Carstens wrote:
On Wed, Aug 23, 2023 at 03:49:36PM +0200, Heiko Carstens wrote:
quoted
On Tue, Aug 22, 2023 at 11:59:26PM +0000, Justin Stitt wrote:
quoted
`strncpy` is deprecated for use on NUL-terminated destination strings [1].

A suitable replacement is `strscpy` [2] due to the fact that it
guarantees NUL-termination on its destination buffer argument which is
_not_ the case for `strncpy`!

Link: www.kernel.org/doc/html/latest/process/deprecated.html#strncpy-on-nul-terminated-strings[1]
Link: https://manpages.debian.org/testing/linux-manual-4.8/strscpy.9.en.html [2]
Link: https://github.com/KSPP/linux/issues/90
Cc: linux-hardening@vger.kernel.org
Signed-off-by: Justin Stitt <justinstitt@google.com>
---
 block/partitions/ibm.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/block/partitions/ibm.c b/block/partitions/ibm.c
index 403756dbd50d..e5893cf71b57 100644
--- a/block/partitions/ibm.c
+++ b/block/partitions/ibm.c
@@ -111,11 +111,11 @@ static int find_label(struct parsed_partitions *state,
 		    !strcmp(temp, "LNX1") ||
 		    !strcmp(temp, "CMS1")) {
 			if (!strcmp(temp, "VOL1")) {
-				strncpy(type, label->vol.vollbl, 4);
-				strncpy(name, label->vol.volid, 6);
+				strscpy(type, label->vol.vollbl, 4);
+				strscpy(name, label->vol.volid, 6);
 			} else {
-				strncpy(type, label->lnx.vollbl, 4);
-				strncpy(name, label->lnx.volid, 6);
+				strscpy(type, label->lnx.vollbl, 4);
+				strscpy(name, label->lnx.volid, 6);
 			}
 			EBCASC(type, 4);
 			EBCASC(name, 6);
I'm quite sure this is not correct, since both type and name are not
necessarily NUL-terminated, and this code operates on purpose on such
strings.

Since currently Stefan and Jan are both not available, I added Peter
Oberparleiter to Cc who hopefully knows better than me.
I was just made aware of that this patch is already in linux-next. And
indeed: partition detection does not work anymore for DASDs. With this
patch reverted it works again.

Jens, can you remove or revert this patch again, please?
Yep will drop it for now.

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