From 668120ae48c3d51fbb8b419fdcf182aece5f4365 Mon Sep 17 00:00:00 2001 From: sangge <2251250136@qq.com> Date: Tue, 9 Jan 2024 15:20:28 +0800 Subject: [PATCH] fix: fix free hex_str --- ChaCha20_DRBG.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ChaCha20_DRBG.c b/ChaCha20_DRBG.c index dc89c12..c79117e 100755 --- a/ChaCha20_DRBG.c +++ b/ChaCha20_DRBG.c @@ -764,8 +764,8 @@ int main() { // char *filename; filename 未分配内存 char filename[100]; // 假设文件名长度不超过 99 个字符 printf("Enter the name of the saved file: "); - // scanf("%s", filename); - strcpy(filename, "1.txt"); + scanf("%s", filename); + // strcpy(filename, "1.txt"); // 生成的比特串保存在文本文件中 FILE *file = fopen(filename, "w"); @@ -775,7 +775,8 @@ int main() { } clock_t start_time = clock(); - + char *hex_str = + (char *)malloc(sizeof(char) * (returned_bits_len / 8 * 2 + 1)); for (int j = 1; j <= returned_bits_num; ++j) { do { int zero_count = 0; @@ -809,15 +810,14 @@ int main() { } while (!pass); // 将二进制数据转为十六进制后写入文件 - char *hex_str = - (char *)malloc(sizeof(char) * (returned_bits_len / 8 * 2 + 1)); + for (int i = 0; i < returned_bits_len / 8; ++i) { sprintf(&hex_str[i * 2], "%02x", returned_bits[i]); } hex_str[returned_bits_len / 8 * 2] = '\0'; fprintf(file, "%s\n", hex_str); // 写入带有换行符的十六进制字符串 - free(hex_str); } + free(hex_str); clock_t end_time = clock(); double execution_time = (double)(end_time - start_time) / CLOCKS_PER_SEC;