Commit 77e9b1c2e8b3120d9c700ac9c792f75ca5a73c22

Con Kolivas 2012-01-26T13:06:39

Use calloced stack memory for CompilerOptions to ensure sprintf writes to the beginning of the char.

diff --git a/ocl.c b/ocl.c
index 3b601e6..81ffe0b 100644
--- a/ocl.c
+++ b/ocl.c
@@ -472,7 +472,7 @@ build:
 	}
 
 	/* create a cl program executable for all the devices specified */
-	char CompilerOptions[256];
+	char *CompilerOptions = calloc(1, 256);
 
 	sprintf(CompilerOptions, "-DWORKSIZE=%d -DVECTORS%d",
 		(int)clState->work_size, clState->preferred_vwidth);
@@ -510,7 +510,10 @@ build:
 	} else if (opt_debug)
 		applog(LOG_DEBUG, "BFI_INT patch requiring device not found, will not BFI_INT patch");
 
+	if (opt_debug)
+		applog(LOG_DEBUG, "CompilerOptions: %s", CompilerOptions);
 	status = clBuildProgram(clState->program, 1, &devices[gpu], CompilerOptions , NULL, NULL);
+	free(CompilerOptions);
 
 	if (status != CL_SUCCESS) {
 		applog(LOG_ERR, "Error: Building Program (clBuildProgram)");