]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Fri, 13 Apr 2012 18:39:13 +0000 (18:39 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Fri, 13 Apr 2012 18:39:13 +0000 (18:39 +0000)
MagickCore/semaphore.c

index 9c755471e06c6f1ef3c5f2956a3a877666808903..2707fbdd1f0155fa7ea418487afb783f79c10977 100644 (file)
@@ -121,15 +121,26 @@ MagickExport void AcquireSemaphoreInfo(SemaphoreInfo **semaphore_info)
 %      SemaphoreInfo *AllocateSemaphoreInfo(void)
 %
 */
+
+static inline size_t MagickMax(const size_t x,const size_t y)
+{
+  if (x > y)
+    return(x);
+  return(y);
+}
+
 MagickExport SemaphoreInfo *AllocateSemaphoreInfo(void)
 {
+#define AlignedSize  (16*sizeof(void *))
+
   SemaphoreInfo
     *semaphore_info;
 
   /*
     Allocate semaphore.
   */
-  semaphore_info=(SemaphoreInfo *) malloc(sizeof(SemaphoreInfo));
+  semaphore_info=(SemaphoreInfo *) malloc(MagickMax(sizeof(*semaphore_info),
+    AlignedSize));
   if (semaphore_info == (SemaphoreInfo *) NULL)
     ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
   (void) ResetMagickMemory(semaphore_info,0,sizeof(SemaphoreInfo));