MCPcopy Create free account
hub / github.com/F-Stack/f-stack / nvpair_unpack_binary

Function nvpair_unpack_binary

freebsd/contrib/libnv/bsd_nvpair.c:871–895  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

869#endif
870
871const unsigned char *
872nvpair_unpack_binary(bool isbe __unused, nvpair_t *nvp,
873 const unsigned char *ptr, size_t *leftp)
874{
875 void *value;
876
877 PJDLOG_ASSERT(nvp->nvp_type == NV_TYPE_BINARY);
878
879 if (*leftp < nvp->nvp_datasize || nvp->nvp_datasize == 0) {
880 ERRNO_SET(EINVAL);
881 return (NULL);
882 }
883
884 value = nv_malloc(nvp->nvp_datasize);
885 if (value == NULL)
886 return (NULL);
887
888 memcpy(value, ptr, nvp->nvp_datasize);
889 ptr += nvp->nvp_datasize;
890 *leftp -= nvp->nvp_datasize;
891
892 nvp->nvp_data = (uint64_t)(uintptr_t)value;
893
894 return (ptr);
895}
896
897const unsigned char *
898nvpair_unpack_bool_array(bool isbe __unused, nvpair_t *nvp,

Callers 1

nvlist_xunpackFunction · 0.85

Calls 1

memcpyFunction · 0.50

Tested by

no test coverage detected