diff --git a/FFI-tests/ffi_test.c b/FFI-tests/ffi_test.c index 4e26a60..3b9500d 100644 --- a/FFI-tests/ffi_test.c +++ b/FFI-tests/ffi_test.c @@ -61,34 +61,36 @@ int main() { // Init the shared library init(); + //temp buffer for the path + char *imagePathBuffer = malloc(100); // loop over the images and sizes to test for (int i = 0; i < imageSetSize; i++) { for (int j = 0; j < imageSizesSetSize; j++) { - char *imagePath = malloc(100); + // Make sure the buffer is clean before using it + memset(imagePathBuffer,0,100); // Getting the correct path - strcat(imagePath, imagesSet[i]); - strcat(imagePath, imageSizesSet[j]); - strcat(imagePath, imageExtensionStr); + strcat(imagePathBuffer, imagesSet[i]); + strcat(imagePathBuffer, imageSizesSet[j]); + strcat(imagePathBuffer, imageExtensionStr); //printf("Path: %s\n", imagePath); // Visually proving that the bytes stored are the correct representation //print_ustr_bytes(imagePath); - printf("Image: %s\n",imagePath); + printf("Image: %s\n",imagePathBuffer); // Printing information about the hashes of the provided images - uint64_t imageAhash = get_ahash(imagePath); - uint64_t imageDhash = get_dhash(imagePath); - uint64_t imagePhash = get_phash(imagePath); + uint64_t imageAhash = get_ahash(imagePathBuffer); + uint64_t imageDhash = get_dhash(imagePathBuffer); + uint64_t imagePhash = get_phash(imagePathBuffer); printf("ahash: %llu \n", imageAhash); printf("dhash: %llu \n", imageDhash); printf("phash: %llu \n", imagePhash); - - //cleanup - memset(imagePath,0,100); - free(imagePath); } - } + } + //cleanup and close the buffer + memset(imagePathBuffer,0,100); + free(imagePathBuffer); // Closing the shared library reference if (lib != NULL ) dlclose(lib);