Source: burp
Version: 1.4.12-1
Severity: important
Tags: patch
User: [email protected]
Usertags: hurd
Hi,
Currently burp fails to build from source due to that the lockf()
function is not yet implemented for GNU/Hurd. As a workaround until it
is available use flock() instead. The attached patch fixes this problem
by using this function. All 12 tests succeed, and they are a
prerequisite for building the package.
Thanks!
--- a/src/lock.c 2014-03-29 06:19:55.000000000 +0100
+++ b/src/lock.c 2014-05-10 22:26:44.000000000 +0200
@@ -2,6 +2,9 @@
#include "lock.h"
#include "log.h"
#include "handy.h"
+#ifdef __GNU__
+#include "sys/file.h"
+#endif
// Return 0 for lock got, 1 for lock not got, -1 for error.
int get_lock(const char *path)
@@ -30,7 +33,11 @@
if((fdlock=open(path, O_WRONLY|O_CREAT, 0666))==-1)
return -1;
+#ifdef __GNU__
+ if(flock(fdlock, LOCK_EX))
+#else
if(lockf(fdlock, F_TLOCK, 0))
+#endif
{
if(errno==EACCES || errno==EAGAIN)
return 1; // Lock not got.