Found with -fsanitize=undefined clang compiler option.
The error was:
print-dvmrp.c:238:27: runtime error: left shift of 240 by 24 places cannot
be represented in type 'int'
ND_PRINT(" [|}");
return (0);
}
ND_PRINT(" [|}");
return (0);
}
- genid = (EXTRACT_U_1(bp) << 24) | (EXTRACT_U_1(bp + 1) << 16) |
- (EXTRACT_U_1(bp + 2) << 8) | EXTRACT_U_1(bp + 3);
+ genid = EXTRACT_BE_U_4(bp);
bp += 4;
len -= 4;
ND_PRINT(ndo->ndo_vflag > 1 ? "\n\t" : " ");
bp += 4;
len -= 4;
ND_PRINT(ndo->ndo_vflag > 1 ? "\n\t" : " ");