diff --git a/hpvm/test/benchmarks/hpvm-cava/src/main.c b/hpvm/test/benchmarks/hpvm-cava/src/main.c
index 0d8fb37d0103b55234e59e8d2b66742faed207b6..3d26a9c45628c5961b45bd4ba11a11283c03eb92 100644
--- a/hpvm/test/benchmarks/hpvm-cava/src/main.c
+++ b/hpvm/test/benchmarks/hpvm-cava/src/main.c
@@ -12,6 +12,9 @@
 
 #include "hpvm.h"
 
+// Max file extension size
+#define MAX_EXT_SIZE 20
+
 int NUM_TEST_CASES;
 int NUM_CLASSES;
 int INPUT_DIM;
@@ -875,29 +878,33 @@ int main(int argc, char *argv[]) {
 
   // Output the image.
   // NOTE: We deliberately perform this file I/O outside of the kernel.
-  char str[50], base_str[50];
+  const int len = strlen(args.args[OUTPUT_IMAGE_BIN]);
+  const char *base_str = args.args[OUTPUT_IMAGE_BIN];
+  char *str = malloc(sizeof(char)*(len + MAX_EXT_SIZE + 1)); // Handles the extensions below
   strcpy(base_str, args.args[OUTPUT_IMAGE_BIN]);
   strcpy(str, base_str);
-  strcat(str, ".bin");
+  strncat(str, ".bin", MAX_EXT_SIZE);
   printf("Writing output image to %s\n", str);
   write_image_to_binary(str, image_out, row_size, col_size);
   strcpy(str, base_str);
-  strcat(str, "_gamut.bin");
+  strncat(str, "_gamut.bin", MAX_EXT_SIZE);
   printf("Writing output image to %s\n", str);
   write_image_to_binary(str, image_out_gamut, row_size, col_size);
   strcpy(str, base_str);
-  strcat(str, "_demosaic.bin");
+  strncat(str, "_demosaic.bin", MAX_EXT_SIZE);
   printf("Writing output image to %s\n", str);
   write_image_to_binary(str, image_out_demosaic, row_size, col_size);
   strcpy(str, base_str);
-  strcat(str, "_denoise.bin");
+  strncat(str, "_denoise.bin", MAX_EXT_SIZE);
   printf("Writing output image to %s\n", str);
   write_image_to_binary(str, image_out_denoise, row_size, col_size);
   strcpy(str, base_str);
-  strcat(str, "_transform.bin");
+  strncat(str, "_transform.bin", MAX_EXT_SIZE);
   printf("Writing output image to %s\n", str);
   write_image_to_binary(str, image_out_transform, row_size, col_size);
 
+  free(str);
+
   __hpvm__cleanup();
 
   return 0;
diff --git a/hpvm/tools/hpvm-clang/main.py.in b/hpvm/tools/hpvm-clang/main.py.in
index b20af0b80f192fe3c87b004c05a72b034aee098d..6d3c4595ead0c30ef5cca090d92cd78432ca9240 100644
--- a/hpvm/tools/hpvm-clang/main.py.in
+++ b/hpvm/tools/hpvm-clang/main.py.in
@@ -229,8 +229,8 @@ See option -b for that."""
         help="[clang emit-llvm] clang++ flags (such as -ffastmath)"
     )
     parser.add_argument(
-        "-O", type=str, default="0", metavar="level",
-        help="[clang emit-llvm] Optimization level"
+        "-O", type=str, default="1", metavar="level",
+        help="[clang emit-llvm] Optimization level. Note that default is -O1."
     )
     parser.add_argument(
         "--std", type=str,