fl.l_start and fl.l_len are 64 bit wide. It has been assumed that long is 64 bit in a printf(), which is incorrect on a 32 bit archtecture * 1st change suppress fall through warning from gcc-7 and higher * 2nd change removes whitespace * 3rd change is this bug and changes this into a long long Signed-off-by: Philipp Psurek --- --- a/tools/locktest/testlk.c 2018-05-22 20:33:01.000000000 +0200 +++ b/tools/locktest/testlk.c 2018-06-03 17:26:36.800202901 +0200 @@ -28,6 +28,7 @@ switch (c) { case 'h': usage(0); + /* fall through */ case 'r': cmd = F_SETLK; typ = F_RDLCK; @@ -75,13 +76,13 @@ if (fcntl(fd, cmd, &fl) < 0) fatal("fcntl"); printf("fcntl: ok\n"); - + /* printf("TP2\n"); */ if (cmd == F_GETLK) { if (fl.l_type == F_UNLCK) { printf("%s: no conflicting lock\n", fname); } else { - printf("%s: conflicting lock by %d on (%ld;%ld)\n", + printf("%s: conflicting lock by %d on (%lld;%lld)\n", fname, fl.l_pid, fl.l_start, fl.l_len); } return 0;