From 6e835b566227980711cda6179f4b4b1d6a5dc4a0 Mon Sep 17 00:00:00 2001 From: Leon Medvinsky <leonkm2@illinois.edu> Date: Sat, 3 Apr 2021 23:50:55 -0500 Subject: [PATCH] Make hpvm-cava allocate file paths dynamically --- hpvm/test/benchmarks/hpvm-cava/src/main.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/hpvm/test/benchmarks/hpvm-cava/src/main.c b/hpvm/test/benchmarks/hpvm-cava/src/main.c index 0d8fb37d01..35fc638080 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; -- GitLab