Browse Source

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

Con Kolivas 14 years ago
parent
commit
77e9b1c2e8
1 changed files with 4 additions and 1 deletions
  1. 4 1
      ocl.c

+ 4 - 1
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)");