control: found -1 burp/1.4.40-1 Dear Svante,
Although the burp 1.4.40 test suite passes with this patch applied, upstream reports that the 2.0.x series test suite finds a problem. The patch causes this problem when applied to burp 1.4.40, even though the older test suite passes. Since this is an old bug, I am preparing a QA upload to drop the patch for now. Burp's author Graham Keeling explains: > Here is the code in 1.4.40. > > // Return 0 for lock got, 1 for lock not got, -1 for error. > int get_lock(const char *path) > { > ... some set up.... > if(lockf(fdlock, F_TLOCK, 0)) > { > if(errno==EACCES || errno==EAGAIN) > return 1; // Lock not got. > logp("Could not get lock %s: %s\n", path, strerror(errno)); > return -1; // Some other error. > } > ...some more code... > return 0; > } > > > As you can see, get_lock() has three different return codes that mean > different things. > If you check 'man 2 flock', you will see that flock() will never set errno > to EACCES or EAGAIN. This means that get_lock() will never detect the > difference between a lock existing, or some error. Thanks to Graham for letting me reproduce this explanation. -- Sean Whitton
signature.asc
Description: PGP signature