summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2021-10-13 14:03:01 +0300
committerToomas Soome <tsoome@me.com>2021-10-16 01:15:40 +0300
commit9e494b8a787c7b2d9fd087a2dde8811e386513d4 (patch)
tree656ebdcaa1e8faccf5453a381d58eaa59a53799a
parent907871a5ae311c723efe7b9326f22ac3303eb0ed (diff)
downloadillumos-gate-9e494b8a787c7b2d9fd087a2dde8811e386513d4.tar.gz
14153 libzfs: str2shift called with NULL handle can crash
Reviewed by: Andy Fiddaman <andy@omnios.org> Reviewed by: Yuri Pankov <ypankov@tintri.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
-rw-r--r--usr/src/lib/libzfs/common/libzfs_util.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/usr/src/lib/libzfs/common/libzfs_util.c b/usr/src/lib/libzfs/common/libzfs_util.c
index 40101befaf..c21159c310 100644
--- a/usr/src/lib/libzfs/common/libzfs_util.c
+++ b/usr/src/lib/libzfs/common/libzfs_util.c
@@ -1155,8 +1155,9 @@ str2shift(libzfs_handle_t *hdl, const char *buf)
break;
}
if (i == strlen(ends)) {
- zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
- "invalid numeric suffix '%s'"), buf);
+ if (hdl != NULL)
+ zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+ "invalid numeric suffix '%s'"), buf);
return (-1);
}
@@ -1166,10 +1167,11 @@ str2shift(libzfs_handle_t *hdl, const char *buf)
*/
if (buf[1] == '\0' || (toupper(buf[1]) == 'B' && buf[2] == '\0' &&
toupper(buf[0]) != 'B'))
- return (10*i);
+ return (10 * i);
- zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
- "invalid numeric suffix '%s'"), buf);
+ if (hdl != NULL)
+ zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+ "invalid numeric suffix '%s'"), buf);
return (-1);
}