| 882 | ************************************************************************/ |
| 883 | |
| 884 | static int |
| 885 | ng_sizedstring_parse(const struct ng_parse_type *type, |
| 886 | const char *s, int *off, const u_char *const start, |
| 887 | u_char *const buf, int *buflen) |
| 888 | { |
| 889 | char *sval; |
| 890 | int len; |
| 891 | int slen; |
| 892 | |
| 893 | if ((sval = ng_get_string_token(s, off, &len, &slen)) == NULL) |
| 894 | return (EINVAL); |
| 895 | if (slen > USHRT_MAX) { |
| 896 | free(sval, M_NETGRAPH_PARSE); |
| 897 | return (EINVAL); |
| 898 | } |
| 899 | *off += len; |
| 900 | *((u_int16_t *)buf) = (u_int16_t)slen; |
| 901 | bcopy(sval, buf + 2, slen); |
| 902 | free(sval, M_NETGRAPH_PARSE); |
| 903 | *buflen = 2 + slen; |
| 904 | return (0); |
| 905 | } |
| 906 | |
| 907 | static int |
| 908 | ng_sizedstring_unparse(const struct ng_parse_type *type, |
nothing calls this directly
no test coverage detected