Bug #13828
closedbeadm: Fix wrong array size
100%
Description
Since ZFS_MAX_DATASET_NAME_LEN has included NUL byte, the definition of name array in count_widths and print_be_snapshots should be:
char name[ZFS_MAX_DATASET_NAME_LEN];
not:
char name[ZFS_MAX_DATASET_NAME_LEN + 1];
Updated by Electric Monk almost 2 years ago
- Status changed from New to Closed
- % Done changed from 0 to 100
git commit 1a414bb636b35c18399549b05b65aef849e6f9df
commit 1a414bb636b35c18399549b05b65aef849e6f9df Author: Nan Xiao <nan@chinadtrace.org> Date: 2021-06-01T02:20:34.000Z 13828 beadm: Fix wrong array size Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Andy Fiddaman <andy@omnios.org> Approved by: Robert Mustacchi <rm@fingolfin.org>
Updated by Nan Xiao almost 2 years ago
Test result of my patch:
I used OmniOS bloody as a testbed, and found the maximum allowed ZFS dataset length is 64 bytes. If input name length is more than 64 bytes, "Invalid argument." error is printed.
(1) Use stock beadm:
$ pfexec beadm create 0123456789012345678901234567890123456789012345678901234567890123
Created successfully
$ beadm list
BE Active Mountpoint Space Policy Created
omnios-r151039-2 NR / 3.75G static 2021-05-25 16:57
0123456789012345678901234567890123456789012345678901234567890123 - - 107K static 2021-06-01 14:03
(2) Use beadm with my patch:
$ pfexec /build/illumos-gate/usr/src/cmd/beadm/beadm create 0123456789012345678901234567890123456789012345678901234567890123
Created successfully
$ beadm list
BE Active Mountpoint Space Policy Created
omnios-r151039-2 NR / 3.75G static 2021-05-25 16:57
0123456789012345678901234567890123456789012345678901234567890123 - - 107K static 2021-06-01 14:05
The BE names outputted by two "beadm"s are same, so it means my patch should work.