|
28 | 28 | */ |
29 | 29 |
|
30 | 30 | static int |
31 | | -l_strnstart(const char *tstr1, u_int tl1, const char *str2, u_int l2) |
| 31 | +l_strnstart(netdissect_options *ndo, const char *tstr1, u_int tl1, |
| 32 | + const char *str2, u_int l2) |
32 | 33 | { |
33 | | - |
| 34 | + if (!ND_TTEST2(*str2, tl1)) { |
| 35 | + /* |
| 36 | + * We don't have tl1 bytes worth of captured data |
| 37 | + * for the string, so we can't check for this |
| 38 | + * string. |
| 39 | + */ |
| 40 | + return 0; |
| 41 | + } |
34 | 42 | if (tl1 > l2) |
35 | 43 | return 0; |
36 | 44 |
|
|
41 | 49 | beep_print(netdissect_options *ndo, const u_char *bp, u_int length) |
42 | 50 | { |
43 | 51 |
|
44 | | - if (l_strnstart("MSG", 4, (const char *)bp, length)) /* A REQuest */ |
| 52 | + if (l_strnstart(ndo, "MSG", 4, (const char *)bp, length)) /* A REQuest */ |
45 | 53 | ND_PRINT((ndo, " BEEP MSG")); |
46 | | - else if (l_strnstart("RPY ", 4, (const char *)bp, length)) |
| 54 | + else if (l_strnstart(ndo, "RPY ", 4, (const char *)bp, length)) |
47 | 55 | ND_PRINT((ndo, " BEEP RPY")); |
48 | | - else if (l_strnstart("ERR ", 4, (const char *)bp, length)) |
| 56 | + else if (l_strnstart(ndo, "ERR ", 4, (const char *)bp, length)) |
49 | 57 | ND_PRINT((ndo, " BEEP ERR")); |
50 | | - else if (l_strnstart("ANS ", 4, (const char *)bp, length)) |
| 58 | + else if (l_strnstart(ndo, "ANS ", 4, (const char *)bp, length)) |
51 | 59 | ND_PRINT((ndo, " BEEP ANS")); |
52 | | - else if (l_strnstart("NUL ", 4, (const char *)bp, length)) |
| 60 | + else if (l_strnstart(ndo, "NUL ", 4, (const char *)bp, length)) |
53 | 61 | ND_PRINT((ndo, " BEEP NUL")); |
54 | | - else if (l_strnstart("SEQ ", 4, (const char *)bp, length)) |
| 62 | + else if (l_strnstart(ndo, "SEQ ", 4, (const char *)bp, length)) |
55 | 63 | ND_PRINT((ndo, " BEEP SEQ")); |
56 | | - else if (l_strnstart("END", 4, (const char *)bp, length)) |
| 64 | + else if (l_strnstart(ndo, "END", 4, (const char *)bp, length)) |
57 | 65 | ND_PRINT((ndo, " BEEP END")); |
58 | 66 | else |
59 | 67 | ND_PRINT((ndo, " BEEP (payload or undecoded)")); |
|
0 commit comments