From: Darrick J. Wong Date: Fri, 26 Apr 2019 20:40:10 +0000 (-0500) Subject: xfs_io: fix label parsing and validation X-Git-Tag: v5.0.0-rc1~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bce8fe6d7082a813a3c1444b8534385508da4a1;p=thirdparty%2Fxfsprogs-dev.git xfs_io: fix label parsing and validation When we're trying to set a new label, check the length to make sure we won't overflow the label size, and size label[] so that we can use strncpy without static checker complaints. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen Signed-off-by: Eric Sandeen --- diff --git a/io/label.c b/io/label.c index 602ece896..72e079648 100644 --- a/io/label.c +++ b/io/label.c @@ -40,7 +40,7 @@ label_f( { int c; int error; - char label[FSLABEL_MAX]; + char label[FSLABEL_MAX + 1]; if (argc == 1) { memset(label, 0, sizeof(label)); @@ -54,7 +54,13 @@ label_f( label[0] = '\0'; break; case 's': - strncpy(label, optarg, sizeof(label)); + if (strlen(optarg) > FSLABEL_MAX) { + errno = EINVAL; + error = 1; + goto out; + } + strncpy(label, optarg, sizeof(label) - 1); + label[sizeof(label) - 1] = 0; break; default: return command_usage(&label_cmd);