strace: on i386, prints sync_file_range() arguments wrongly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
strace (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: strace
Package: strace
Version: 4.5.20-2ubuntu2
strace on i386 does not print the arguments to sync_file_range correctly:
cam-vm-
#define _GNU_SOURCE
#include <stdio.h>
#include <fcntl.h>
int main(void) {
int r;
printf("calling sync_file_
r = sync_file_range(42, 0x123456789abcd
printf("returned %d\n", r);
return 0;
}
cam-vm-
cam-vm-
sync_file_
I think this is because strace doesn't know that the 2nd and 3rd arguments here are both off64_t so it's assuming it takes four 32 bit arguments. On x86_64 where a 64 bit value fits into one register anyway this bug doesn't occur.