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

Function nvpair_unpack

freebsd/contrib/libnv/bsd_nvpair.c:1125–1153  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1123}
1124
1125const unsigned char *
1126nvpair_unpack(bool isbe, const unsigned char *ptr, size_t *leftp,
1127 nvpair_t **nvpp)
1128{
1129 nvpair_t *nvp, *tmp;
1130
1131 nvp = nv_calloc(1, sizeof(*nvp) + NV_NAME_MAX);
1132 if (nvp == NULL)
1133 return (NULL);
1134 nvp->nvp_name = (char *)(nvp + 1);
1135
1136 ptr = nvpair_unpack_header(isbe, nvp, ptr, leftp);
1137 if (ptr == NULL)
1138 goto fail;
1139 tmp = nv_realloc(nvp, sizeof(*nvp) + strlen(nvp->nvp_name) + 1);
1140 if (tmp == NULL)
1141 goto fail;
1142 nvp = tmp;
1143
1144 /* Update nvp_name after realloc(). */
1145 nvp->nvp_name = (char *)(nvp + 1);
1146 nvp->nvp_data = 0x00;
1147 nvp->nvp_magic = NVPAIR_MAGIC;
1148 *nvpp = nvp;
1149 return (ptr);
1150fail:
1151 nv_free(nvp);
1152 return (NULL);
1153}
1154
1155int
1156nvpair_type(const nvpair_t *nvp)

Callers 1

nvlist_xunpackFunction · 0.85

Calls 1

nvpair_unpack_headerFunction · 0.85

Tested by

no test coverage detected