#
350338 |
|
26-Jul-2019 |
kevans |
MFC r348328: bectl(8): Address Coverity complaints
CID 1400451: case 0 is missing a break/return and falling through to the default case. waitpid(0, ...) makes little sense in the child, we likely wanted to terminate immediately.
CID 1400453: size argument uses sizeof(char **) instead of sizeof(char *) and is assigned to a char **; sizeof's match but "this isn't a portable assumption".
CID: 1400451, 1400453
|
#
346477 |
|
21-Apr-2019 |
kevans |
MFC r337871, r339970, r342151, r342161, r343123-r343124, r344226, r344234, r344248, r344387
r337871: pkgfs_init: Initialize pkg
new_package may not set *pp if it errors out, leaving pkg uninitialized.
r339970: Remove unnecessary include from libstand.
r342151: loader: zfs reader should not probe partitionless disks
First of all, normal setups can not boot such pools as the tools do not support installing boot programs.
Secondly, for proper pool configuration detection, we need to checks all four label copies on disk, 2 from front and 2 from the end of the disk, but zfs label does not contain the size of the disk - so we depend on firmware to report the correct disk size or use information from the partition table.
Without partition table, we only can rely on firmware to report and support disk IO properly.
There is a specific case: 8TB disks are reported by BIOS to have 4294967295 sectors (0x00000000ffffffff), the sectors reported by OS is 15628053168 (0x00000003a3812ab0), so the reported size is less than actual but is hitting 32-bit max. Unfortuantely the real limit must be even lower because probing this disk in this system will wnd up with hung system.
UEFI boot of this system seems not to be affected.
r342161: loader: zfs reader should not probe partitionless disks (UEFI case)
With r342151 I did fix the BIOS version of zfs_probe_dev() from accessing the whole disk, but the fix was not complete - we actually did not check if the device name was really for whole disk. Since UEFI version is only calling the zfs_probe_dev() with partitions and not with whole disk, the UEFI loader was not able to find the zfs pools.
This update does correct the issue by calling archsw.arch_getdev() to translate the device name back to dev_desc, and we have whole disk when both partition and slice values are -1.
r343123: loader should ignore active multi_vdev_crash_dump feature on zpool
Since the loader zfs reader does not need to read the dump zvol, we can just enable the feature.
illumos issue #9051 https://www.illumos.org/issues/9051
r343124: libsa: add asprintf()
asprintf() is a nice tool for string processing.
r344226: Fix memory corruption bug introduced in r325310
The bug occurred when a bounce buffer was used and the requested read size was greater than the size of the bounce buffer. This commit also rewrites the read logic so that it is easier to systematically verify all alignment and size cases.
r344234: It turns out r344226 narrowed the overrun bug but did not eliminate it entirely
This commit fixes a remaining output buffer overrun in the single-sector case when there is a non-zero tail.
r344248: cd9660: dirmatch fails to unmatch when name is prefix for directory record
Loader does fail to properly match the file name in directory record and does open file based on prefix match.
For fix, we check the name lengths first.
r344387: loader: really fix cd9660 dirmatch
The cd9660_open() does pass whole path to dirmatch() and we need to compare only the current path component, not full path.
Additinally, skip over duplicate / (if any) and check if the last component in the path was meant to be directory (having trailing /). If it is in fact a file, error out.
|
#
344408 |
|
21-Feb-2019 |
kevans |
MFC various libsa fixes: r337037-r337039, r337065, r337412-r337413, r337874, r338535, r338540, r339651, r339992-r339993, r340026
r337037: libsa: pointer differs in signedness
A small cleanup, fix the argument type and while there, replace (char *)0 with NULL.
r337038: libsa: bootp is using pointers with different sign
Just change bp_file to char and same for variable s.
r337039: libsa: assignment to char * from u_char *
Cast to char * instead of u_char *
r337065: libsa: dereferencing type-punned pointer in cd9660
The warning is given by gcc build, but it is good to fix anyhow. use bcopy instead of direct assignment.
r337412: libsa: dos_checksum() should take unsigned chars
Fix pointers to integers with different sign issue.
r337413: libsa: gzipfs.c converts pointers to integer types with different sign
Signed versus unsigned char.
r337874: libsa: zfs_probe() needs to set spa to NULL
Silence the warning about possibly uninitialized use of spa.
r338535: libsa: memory leak in tftp_open()
tftpfile is allocated just above and needs to be freed.
r338540: libsa: validate tftp_makereq() after we did reset the read
The name check referred in the comment is not the only possible error source, we need to validate the result.
r339651: libsa: re-send ACK for older data packets in tftp
In current tftp code we drop out-of-order packets; however, we should play nice and re-send ACK for older data packets we are receiving. This will hopefully stop server repeating those packets we already have received. Note we do not answer duplicates from "previous" session (that is, session with different port number), those will eventually time out.
r339992: libsa: tftp should not read past file end
When we have the file size via tsize option, use it to make sure we will not attempt to read past file end.
r339993: libsa: tftp should use calloc
instead of malloc() memset(), use calloc().
r340026: libsa: cstyle cleanup tftp.c
No functinal changes intended.
|