[Bf-blender-cvs] [7a04c7f] master: Ensure no integer overflow happens in SuperLU solver on memory allocation x

Sergey Sharybin noreply at git.blender.org
Fri Dec 19 20:23:51 CET 2014


Commit: 7a04c7f6d02a90388e722bf3a600327b52c744ac
Author: Sergey Sharybin
Date:   Sat Dec 20 00:22:33 2014 +0500
Branches: master
https://developer.blender.org/rB7a04c7f6d02a90388e722bf3a600327b52c744ac

Ensure no integer overflow happens in SuperLU solver on memory allocation
x

===================================================================

M	intern/opennl/superlu/smemory.c

===================================================================

diff --git a/intern/opennl/superlu/smemory.c b/intern/opennl/superlu/smemory.c
index a76f60a..c3b28a9 100644
--- a/intern/opennl/superlu/smemory.c
+++ b/intern/opennl/superlu/smemory.c
@@ -483,7 +483,7 @@ void
     else lword = sizeof(double);
 
     if ( Glu->MemModel == SYSTEM ) {
-	new_mem = (void *) SUPERLU_MALLOC(new_len * lword);
+	new_mem = (void *) SUPERLU_MALLOC((size_t)new_len * (size_t)lword);
 /*	new_mem = (void *) calloc(new_len, lword); */
 	if ( no_expand != 0 ) {
 	    tries = 0;
@@ -494,7 +494,7 @@ void
 		    if ( ++tries > 10 ) return (NULL);
 		    alpha = Reduce(alpha);
 		    new_len = alpha * *prev_len;
-		    new_mem = (void *) SUPERLU_MALLOC(new_len * lword); 
+		    new_mem = (void *) SUPERLU_MALLOC((size_t)new_len * (size_t)lword); 
 /*		    new_mem = (void *) calloc(new_len, lword); */
 		}
 	    }
@@ -509,7 +509,7 @@ void
 	
     } else { /* MemModel == USER */
 	if ( no_expand == 0 ) {
-	    new_mem = suser_malloc(new_len * lword, HEAD);
+	    new_mem = suser_malloc((size_t)new_len * (size_t)lword, HEAD);
 	    if ( NotDoubleAlign(new_mem) &&
 		(type == LUSUP || type == UCOL) ) {
 		old_mem = new_mem;




More information about the Bf-blender-cvs mailing list