summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2017-01-11 15:35:25 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-08-11 09:30:15 -0700
commitb2418e8ba0b1354c6dec76950767767194f55266 (patch)
treede3f82480128a7be153f4ee88f9be256b742511d /include
parente8bb8743b54571048868d889d81926425b2df181 (diff)
downloadlinux-b2418e8ba0b1354c6dec76950767767194f55266.tar.gz
linux-b2418e8ba0b1354c6dec76950767767194f55266.tar.bz2
linux-b2418e8ba0b1354c6dec76950767767194f55266.zip
wext: handle NULL extra data in iwe_stream_add_point better
commit 93be2b74279c15c2844684b1a027fdc71dd5d9bf upstream. gcc-7 complains that wl3501_cs passes NULL into a function that then uses the argument as the input for memcpy: drivers/net/wireless/wl3501_cs.c: In function 'wl3501_get_scan': include/net/iw_handler.h:559:3: error: argument 2 null where non-null expected [-Werror=nonnull] memcpy(stream + point_len, extra, iwe->u.data.length); This works fine here because iwe->u.data.length is guaranteed to be 0 and the memcpy doesn't actually have an effect. Making the length check explicit avoids the warning and should have no other effect here. Also check the pointer itself, since otherwise we get warnings elsewhere in the code. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include')
-rw-r--r--include/net/iw_handler.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/iw_handler.h b/include/net/iw_handler.h
index e8aa72eaded5..53127a94e219 100644
--- a/include/net/iw_handler.h
+++ b/include/net/iw_handler.h
@@ -545,7 +545,8 @@ iwe_stream_add_point(struct iw_request_info *info, char *stream, char *ends,
memcpy(stream + lcp_len,
((char *) &iwe->u) + IW_EV_POINT_OFF,
IW_EV_POINT_PK_LEN - IW_EV_LCP_PK_LEN);
- memcpy(stream + point_len, extra, iwe->u.data.length);
+ if (iwe->u.data.length && extra)
+ memcpy(stream + point_len, extra, iwe->u.data.length);
stream += event_len;
}
return stream;