Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jan 2018 09:53:15 +0000 (UTC)
From:      Antoine Brodin <antoine@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r458923 - in head/security/yara: . files
Message-ID:  <201801130953.w0D9rF3F065991@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: antoine
Date: Sat Jan 13 09:53:15 2018
New Revision: 458923
URL: https://svnweb.freebsd.org/changeset/ports/458923

Log:
  Work around sem_unlink bug on FreeBSD when /tmp is using tmpfs
  
  PR:		189353

Added:
  head/security/yara/files/
  head/security/yara/files/patch-threading.c   (contents, props changed)
Modified:
  head/security/yara/Makefile

Modified: head/security/yara/Makefile
==============================================================================
--- head/security/yara/Makefile	Sat Jan 13 09:47:41 2018	(r458922)
+++ head/security/yara/Makefile	Sat Jan 13 09:53:15 2018	(r458923)
@@ -2,6 +2,7 @@
 
 PORTNAME=	yara
 PORTVERSION=	3.7.0
+PORTREVISION=	1
 DISTVERSIONPREFIX=	v
 CATEGORIES=	security
 

Added: head/security/yara/files/patch-threading.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/security/yara/files/patch-threading.c	Sat Jan 13 09:53:15 2018	(r458923)
@@ -0,0 +1,37 @@
+# Work around FreeBSD bug #189353 when /tmp is using tmpfs(5)
+
+--- threading.c.orig	2017-11-10 11:21:21 UTC
++++ threading.c
+@@ -33,6 +33,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI
+ #include <errno.h>
+ #endif
+ 
++#if defined(__FreeBSD__)
++#include <stdlib.h>
++#endif
++
+ #include "threading.h"
+ 
+ 
+@@ -88,6 +92,11 @@ int semaphore_init(
+   *semaphore = CreateSemaphore(NULL, value, 65535, NULL);
+   if (*semaphore == NULL)
+     return GetLastError();
++  #elif defined(__FreeBSD__)
++  *semaphore = malloc(sizeof(sem_t));
++  if (*semaphore == NULL)
++    return errno;
++  return sem_init(*semaphore, 0, value);
+   #else
+   // Mac OS X doesn't support unnamed semaphores via sem_init, that's why
+   // we use sem_open instead sem_init and immediately unlink the semaphore
+@@ -112,6 +121,9 @@ void semaphore_destroy(
+ {
+   #if defined(_WIN32) || defined(__CYGWIN__)
+   CloseHandle(*semaphore);
++  #elif defined(__FreeBSD__)
++  sem_close(*semaphore);
++  free(*semaphore);
+   #else
+   sem_close(*semaphore);
+   #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201801130953.w0D9rF3F065991>