Skip to content

Commit

Permalink
Fix get_special_prop() build failure
Browse files Browse the repository at this point in the history
The cast of the size_t returned by strlcpy() to a uint64_t by the
VERIFY3U can result in a build failure when CONFIG_FORTIFY_SOURCE
is set.  This is due to the additional hardening.  Since the token
is expected to always fit in strval the VERIFY3U has been removed.
If somehow it doesn't, it will still be safely truncated.

Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Don Brady <don.brady@delphix.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue openzfs#8999
Closes openzfs#9020
  • Loading branch information
behlendorf authored and TulsiJain committed Jul 20, 2019
1 parent 1e80ee6 commit 30158eb
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions module/zfs/zcp_get.c
Original file line number Diff line number Diff line change
Expand Up @@ -423,13 +423,11 @@ get_special_prop(lua_State *state, dsl_dataset_t *ds, const char *dsname,
case ZFS_PROP_RECEIVE_RESUME_TOKEN: {
char *token = get_receive_resume_stats_impl(ds);

VERIFY3U(strlcpy(strval, token, ZAP_MAXVALUELEN),
<, ZAP_MAXVALUELEN);
(void) strlcpy(strval, token, ZAP_MAXVALUELEN);
if (strcmp(strval, "") == 0) {
char *childval = get_child_receive_stats(ds);

VERIFY3U(strlcpy(strval, childval, ZAP_MAXVALUELEN),
<, ZAP_MAXVALUELEN);
(void) strlcpy(strval, childval, ZAP_MAXVALUELEN);
if (strcmp(strval, "") == 0)
error = ENOENT;

Expand Down

0 comments on commit 30158eb

Please sign in to comment.