Silence clang static analyzer warnings about stored stack addresses
Clang's static analyzer complains that nvs_xdr() and nvs_native() functions return pointers to stack memory. That is technically true, but the pointers are stored in stack memory from the caller's stack frame, are not read by the caller and are deallocated when the caller returns, so this is harmless. We set the pointers to NULL to silence the warnings. Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu> Closes #14612
This commit is contained in:
parent
3cb293a6f8
commit
47b994049f
|
@ -75,9 +75,6 @@ struct xdr_bytesrec {
|
|||
void xdrmem_create(XDR *xdrs, const caddr_t addr, const uint_t size,
|
||||
const enum xdr_op op);
|
||||
|
||||
/* Currently not needed. If needed later, we'll add it to struct xdr_ops */
|
||||
#define xdr_destroy(xdrs) ((void) 0)
|
||||
|
||||
#define xdr_control(xdrs, req, info) \
|
||||
(xdrs)->x_ops->xdr_control((xdrs), (req), (info))
|
||||
|
||||
|
|
|
@ -2808,7 +2808,7 @@ nvs_native_create(nvstream_t *nvs, nvs_native_t *native, char *buf,
|
|||
static void
|
||||
nvs_native_destroy(nvstream_t *nvs)
|
||||
{
|
||||
(void) nvs;
|
||||
nvs->nvs_private = NULL;
|
||||
}
|
||||
|
||||
static int
|
||||
|
@ -3189,7 +3189,7 @@ nvs_xdr_destroy(nvstream_t *nvs)
|
|||
switch (nvs->nvs_op) {
|
||||
case NVS_OP_ENCODE:
|
||||
case NVS_OP_DECODE:
|
||||
xdr_destroy((XDR *)nvs->nvs_private);
|
||||
nvs->nvs_private = NULL;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue