fixes undefined behavior in parse_canframe (lib.c:187) by chaning tmp to

canid_t

Issue:
mkdir build && cd build
CC=clang cmake -DCMAKE_C_FLAGS="-fsanitize=address,undefined"
-DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address,undefined" .. && cmake
--build .

 echo "(0.0) can1 ffffffff#00000000" | ./log2long
can-utils/lib.c:187:23: runtime error: left shift of 15 by 28 places
cannot be represented in type 'int'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
/can-utils/lib.c:187:23 in
(0.0)  can1  3FFFFFFF
pull/321/head
weichslgartner 2022-06-13 15:53:55 +02:00
parent 34732eddeb
commit eb2b38790a
1 changed files with 1 additions and 1 deletions

2
lib.c
View File

@ -159,7 +159,7 @@ int parse_canframe(char *cs, struct canfd_frame *cf) {
int i, idx, dlen, len; int i, idx, dlen, len;
int maxdlen = CAN_MAX_DLEN; int maxdlen = CAN_MAX_DLEN;
int ret = CAN_MTU; int ret = CAN_MTU;
unsigned char tmp; canid_t tmp;
len = strlen(cs); len = strlen(cs);
//printf("'%s' len %d\n", cs, len); //printf("'%s' len %d\n", cs, len);