| 714 | } |
| 715 | |
| 716 | const unsigned char * |
| 717 | nvpair_unpack_bool(bool isbe __unused, nvpair_t *nvp, const unsigned char *ptr, |
| 718 | size_t *leftp) |
| 719 | { |
| 720 | uint8_t value; |
| 721 | |
| 722 | PJDLOG_ASSERT(nvp->nvp_type == NV_TYPE_BOOL); |
| 723 | |
| 724 | if (nvp->nvp_datasize != sizeof(value)) { |
| 725 | ERRNO_SET(EINVAL); |
| 726 | return (NULL); |
| 727 | } |
| 728 | if (*leftp < sizeof(value)) { |
| 729 | ERRNO_SET(EINVAL); |
| 730 | return (NULL); |
| 731 | } |
| 732 | |
| 733 | memcpy(&value, ptr, sizeof(value)); |
| 734 | ptr += sizeof(value); |
| 735 | *leftp -= sizeof(value); |
| 736 | |
| 737 | if (value != 0 && value != 1) { |
| 738 | ERRNO_SET(EINVAL); |
| 739 | return (NULL); |
| 740 | } |
| 741 | |
| 742 | nvp->nvp_data = (uint64_t)value; |
| 743 | |
| 744 | return (ptr); |
| 745 | } |
| 746 | |
| 747 | const unsigned char * |
| 748 | nvpair_unpack_number(bool isbe, nvpair_t *nvp, const unsigned char *ptr, |
no test coverage detected