43 size_t n = nbytes + 1;
47 for (u = 0; u < nbytes; u++) {
59 memcpy(
string, bytes, nbytes);
63 for (u = 0; u < nbytes; u++) {
64 if (bytes[u] ==
'\0') {
89 size_t n = nbytes + 1;
93 for (u = 0; u < nbytes; u++) {
103 memcpy(
string, bytes, nbytes);
104 string[nbytes] =
'\0';
108 for (u = 0; u < nbytes; u++) {
109 if (bytes[u] ==
'\0') {
119 strlcpy(outstr,
string, outlen);
133 ret = ByteExtract(&i64, e,
len, bytes);
138 *
res = (uint64_t)i64;
154 ret = ByteExtract(&i64, e,
len, bytes);
159 *
res = (uint32_t)i64;
175 ret = ByteExtract(&i64, e,
len, bytes);
180 *
res = (uint16_t)i64;
187 const char *ptr =
str;
212 *
res = strtoull(ptr, &endptr, base);
214 if (errno == ERANGE) {
219 }
else if (endptr == ptr && *
res == 0) {
222 }
else if (endptr == ptr) {
226 else if (strict && *endptr !=
'\0') {
231 return (endptr - ptr);
247 if (i64 > UINT32_MAX) {
251 *
res = (uint32_t)i64;
253 if ((uint64_t)(*res) != i64) {
254 SCLogDebug(
"Numeric value out of range (%" PRIu64
" > %" PRIuMAX
")",
255 i64, (uintmax_t)UINT_MAX);
270 if (i64 > UINT16_MAX) {
274 *
res = (uint16_t)i64;
276 if ((uint64_t)(*res) != i64) {
277 SCLogDebug(
"Numeric value out of range (%" PRIu64
" > %" PRIuMAX
")",
278 i64, (uintmax_t)USHRT_MAX);
293 if (i64 > UINT8_MAX) {
299 if ((uint64_t)(*res) != i64) {
300 SCLogDebug(
"Numeric value out of range (%" PRIu64
" > %" PRIuMAX
")",
301 i64, (uintmax_t)UCHAR_MAX);
321 if (i64 > UINT32_MAX) {
325 *
res = (uint32_t)i64;
327 if ((uint64_t)(*res) != i64) {
329 "(%" PRIu64
" > %" PRIuMAX
")", i64, (uintmax_t)UINT_MAX);
344 if (i64 > UINT16_MAX) {
348 *
res = (uint16_t)i64;
350 if ((uint64_t)(*res) != i64) {
352 "(%" PRIu64
" > %" PRIuMAX
")", i64, (uintmax_t)USHRT_MAX);
367 if (i64 > UINT8_MAX) {
373 if ((uint64_t)(*res) != i64) {
375 "(%" PRIu64
" > %" PRIuMAX
")", i64, (uintmax_t)UCHAR_MAX);
383 uint64_t min, uint64_t max)
394 if (*res < min || *res > max) {
402 uint32_t min, uint32_t max)
410 if (u64 > UINT32_MAX) {
414 *
res = (uint32_t)u64;
416 if (*res < min || *res > max) {
420 if ((uint64_t)(*res) != u64) {
422 "(%" PRIu64
" > %" PRIuMAX
")", u64, (uintmax_t)UINT_MAX);
430 uint16_t min, uint16_t max)
438 if (u64 > UINT16_MAX) {
442 *
res = (uint16_t)u64;
444 if (*res < min || *res > max) {
448 if ((uint64_t)(*res) != u64) {
450 "(%" PRIu64
" > %" PRIuMAX
")", u64, (uintmax_t)USHRT_MAX);
458 uint8_t min, uint8_t max)
466 if (u64 > UINT8_MAX) {
472 if (*res < min || *res > max) {
476 if ((uint64_t)(*res) != u64) {
478 "(%" PRIu64
" > %" PRIuMAX
")", u64, (uintmax_t)UCHAR_MAX);
487 const char *ptr =
str;
512 *
res = strtoll(ptr, &endptr, base);
514 if (errno == ERANGE) {
517 }
else if (endptr ==
str) {
521 else if (strict &&
len && *endptr !=
'\0') {
528 return (endptr - ptr);
545 if (i64 < INT32_MIN || i64 > INT32_MAX) {
551 if ((int64_t)(*res) != i64) {
553 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)INT_MAX);
569 if (i64 < INT16_MIN || i64 > INT16_MAX) {
575 if ((int64_t)(*res) != i64) {
577 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)SHRT_MAX);
593 if (i64 < INT8_MIN || i64 > INT8_MAX) {
599 if ((int64_t)(*res) != i64) {
601 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)CHAR_MAX);
622 if (i64 < INT32_MIN || i64 > INT32_MAX) {
628 if ((int64_t)(*res) != i64) {
630 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)INT_MAX);
646 if (i64 < INT16_MIN || i64 > INT16_MAX) {
652 if ((int64_t)(*res) != i64) {
654 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)SHRT_MAX);
670 if (i64 < INT8_MIN || i64 > INT8_MAX) {
676 if ((int64_t)(*res) != i64) {
678 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)CHAR_MAX);
686 int64_t min, int64_t max)
697 if (*res < min || *res > max) {
705 int32_t min, int32_t max)
714 if (i64 < INT32_MIN || i64 > INT32_MAX) {
720 if (*res < min || *res > max) {
724 if ((int64_t)(*res) != i64) {
726 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)INT_MAX);
734 int16_t min, int16_t max)
743 if (i64 < INT16_MIN || i64 > INT16_MAX) {
749 if (*res < min || *res > max) {
753 if ((int64_t)(*res) != i64) {
755 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)SHRT_MAX);
763 int8_t min, int8_t max)
772 if (i64 < INT8_MIN || i64 > INT8_MAX) {
778 if (*res < min || *res > max) {
782 if ((int64_t)(*res) != i64) {
784 "(%" PRIi64
" > %" PRIiMAX
")\n", i64, (intmax_t)CHAR_MAX);
794 static int ByteTest01 (
void)
796 uint16_t val = 0x0102;
797 uint16_t i16 = 0xbfbf;
798 uint8_t bytes[2] = { 0x02, 0x01 };
801 if ((ret == 2) && (i16 == val)) {
808 static int ByteTest02 (
void)
810 uint16_t val = 0x0102;
811 uint16_t i16 = 0xbfbf;
812 uint8_t bytes[2] = { 0x01, 0x02 };
815 if ((ret == 2) && (i16 == val)) {
822 static int ByteTest03 (
void)
824 uint32_t val = 0x01020304;
825 uint32_t i32 = 0xbfbfbfbf;
826 uint8_t bytes[4] = { 0x04, 0x03, 0x02, 0x01 };
829 if ((ret == 4) && (i32 == val)) {
836 static int ByteTest04 (
void)
838 uint32_t val = 0x01020304;
839 uint32_t i32 = 0xbfbfbfbf;
840 uint8_t bytes[4] = { 0x01, 0x02, 0x03, 0x04 };
843 if ((ret == 4) && (i32 == val)) {
850 static int ByteTest05 (
void)
852 uint64_t val = 0x0102030405060708ULL;
853 uint64_t i64 = 0xbfbfbfbfbfbfbfbfULL;
854 uint8_t bytes[8] = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 };
857 if ((ret == 8) && (i64 == val)) {
864 static int ByteTest06 (
void)
866 uint64_t val = 0x0102030405060708ULL;
867 uint64_t i64 = 0xbfbfbfbfbfbfbfbfULL;
868 uint8_t bytes[8] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 };
871 if ((ret == 8) && (i64 == val)) {
878 static int ByteTest07 (
void)
880 const char *
str =
"1234567890";
881 uint64_t val = 1234567890;
882 uint64_t i64 = 0xbfbfbfbfbfbfbfbfULL;
885 if ((ret == 10) && (i64 == val)) {
892 static int ByteTest08 (
void)
894 const char *
str =
"1234567890";
895 uint32_t val = 1234567890;
896 uint32_t i32 = 0xbfbfbfbf;
899 if ((ret == 10) && (i32 == val)) {
906 static int ByteTest09 (
void)
908 const char *
str =
"12345";
909 uint16_t val = 12345;
910 uint16_t i16 = 0xbfbf;
913 if ((ret == 5) && (i16 == val)) {
920 static int ByteTest10 (
void)
922 const char *
str =
"123";
927 if ((ret == 3) && (i8 == val)) {
934 static int ByteTest11 (
void)
936 const char *
str =
"-1234567890";
937 int64_t val = -1234567890;
938 int64_t i64 = 0xbfbfbfbfbfbfbfbfULL;
941 if ((ret == 11) && (i64 == val)) {
948 static int ByteTest12 (
void)
950 const char *
str =
"-1234567890";
951 int32_t val = -1234567890;
952 int32_t i32 = 0xbfbfbfbf;
955 if ((ret == 11) && (i32 == val)) {
962 static int ByteTest13 (
void)
964 const char *
str =
"-12345";
965 int16_t val = -12345;
966 int16_t i16 = 0xbfbf;
969 if ((ret == 6) && (i16 == val)) {
976 static int ByteTest14 (
void)
978 const char *
str =
"-123";
983 if ((ret == 4) && (i8 == val)) {
991 static int ByteTest15 (
void)
993 const char *
str =
"4294967295";
994 uint32_t val = 4294967295UL;
995 uint32_t u32 = 0xffffffff;
998 if ((ret == 10) && (u32 == val)) {
1006 static int ByteTest16 (
void)
1008 const char *
str =
"4294967296";