md: Replace snprintf with scnprintf
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
In Progress
|
Medium
|
Tim Gardner | ||
Focal |
Fix Released
|
Medium
|
Tim Gardner | ||
Jammy |
Fix Released
|
Medium
|
Tim Gardner | ||
Kinetic |
Fix Released
|
Medium
|
Tim Gardner |
Bug Description
SRU Justification
[Impact]
Current code produces a warning as shown below when total characters
in the constituent block device names plus the slashes exceeds 200.
snprintf() returns the number of characters generated from the given
input, which could cause the expression “200 – len” to wrap around
to a large positive number. Fix this by using scnprintf() instead,
which returns the actual number of characters written into the buffer.
[ 1513.267938] ------------[ cut here ]------------
[ 1513.267943] WARNING: CPU: 15 PID: 37247 at <snip>/
[ 1513.267944] Modules linked in: <snip>
[ 1513.267969] CPU: 15 PID: 37247 Comm: mdadm Not tainted 5.4.0-1085-azure #90~18.04.1-Ubuntu
[ 1513.267969] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 05/09/2022
[ 1513.267971] RIP: 0010:vsnprintf+
<-snip->
[ 1513.267982] Call Trace:
[ 1513.267986] snprintf+0x45/0x70
[ 1513.267990] ? disk_name+0x71/0xa0
[ 1513.267993] dump_zones+
[ 1513.267996] ? _cond_resched+
[ 1513.267998] raid0_run+
[ 1513.268000] md_run+0x5e0/0xc50
[ 1513.268003] ? security_
[ 1513.268005] do_md_run+
[ 1513.268006] md_ioctl+
[ 1513.268007] blkdev_
[ 1513.268010] block_ioctl+
[ 1513.268012] do_vfs_
[ 1513.268014] ? __fput+0x162/0x260
[ 1513.268016] ksys_ioctl+
[ 1513.268017] __x64_sys_
[ 1513.268019] do_syscall_
[ 1513.268021] entry_SYSCALL_
[Fix]
[Where things could go wrong]
This seems unlikely to cause a regression
[Other Info]
SF: #00346036
description: | updated |
Changed in linux (Ubuntu Focal): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in linux (Ubuntu Jammy): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
Changed in linux (Ubuntu Kinetic): | |
assignee: | nobody → Tim Gardner (timg-tpi) |
importance: | Undecided → Medium |
status: | New → In Progress |
tags: | added: verification-done-jammy |
Changed in linux (Ubuntu Kinetic): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Jammy): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
tags: | added: verification-done-jammy |
tags: |
added: verification-done-focal verification-done-kinetic removed: verification-needed-focal verification-needed-jammy verification-needed-kinetic |
tags: |
added: verification-done-focal removed: verification-needed-focal |
tags: |
added: verification-done-focal verification-done-kinetic removed: verification-needed-focal verification-needed-kinetic |
tags: |
added: verification-done-kinetic removed: verification-needed-kinetic |
tags: |
added: verification-done-focal removed: verification-needed-focal |
tags: |
added: verification-done-focal verification-done-jammy verification-done-kinetic removed: verification-needed-focal verification-needed-jammy verification-needed-kinetic |
tags: |
added: verification-done-focal verification-done-jammy removed: verification-needed-focal verification-needed-jammy |
tags: |
added: verification-done-focal verification-done-jammy removed: verification-needed-focal verification-needed-jammy |
This bug is awaiting verification that the linux-azure/ 5.15.0- 1023.29 kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification- needed- jammy' to 'verification- done-jammy' . If the problem still exists, change the tag 'verification- needed- jammy' to 'verification- failed- jammy'.
If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.
See https:/ /wiki.ubuntu. com/Testing/ EnableProposed for documentation how to enable and use -proposed. Thank you!