extern u_int pppoe_print(netdissect_options *, const u_char *, u_int);
extern void pptp_print(netdissect_options *, const u_char *);
extern void ptp_print(netdissect_options *, const u_char *, u_int);
-extern int print_unknown_data(netdissect_options *, const u_char *, const char *, int);
+extern int print_unknown_data(netdissect_options *, const u_char *, const char *, u_int);
extern const char *q922_string(netdissect_options *, const u_char *, u_int);
extern void q933_print(netdissect_options *, const u_char *, u_int);
extern void radius_print(netdissect_options *, const u_char *, u_int);
*/
int
-print_unknown_data(netdissect_options *ndo, const u_char *cp,const char *ident,int len)
+print_unknown_data(netdissect_options *ndo, const u_char *cp,
+ const char *ident, u_int len)
{
u_int len_to_print;
- if (len < 0) {
- ND_PRINT("%sDissector error: print_unknown_data called with negative length",
- ident);
- return(0);
- }
len_to_print = len;
- if (ndo->ndo_snapend < cp) {
+ if (!ND_TTEST_LEN(cp, 0)) {
ND_PRINT("%sDissector error: print_unknown_data called with pointer past end of packet",
ident);
return(0);