From e1e5abe19197f2bb56a9d320b31275db4706aa4d Mon Sep 17 00:00:00 2001
From: AlexeyAB <alexeyab84@gmail.com>
Date: Fri, 15 Jun 2018 22:27:11 +0000
Subject: [PATCH] Fixed some security issues
---
src/image.c | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/src/image.c b/src/image.c
index 625e7df..5313964 100644
--- a/src/image.c
+++ b/src/image.c
@@ -966,10 +966,15 @@
if( (src = cvLoadImage(filename, flag)) == 0 )
{
- fprintf(stderr, "Cannot load image \"%s\"\n", filename);
- char buff[256];
- sprintf(buff, "echo %s >> bad.list", filename);
- system(buff);
+ char shrinked_filename[1024];
+ if (strlen(filename) >= 1024) sprintf(shrinked_filename, "name is too long");
+ else sprintf(shrinked_filename, "%s", filename);
+ fprintf(stderr, "Cannot load image \"%s\"\n", shrinked_filename);
+ FILE* fw = fopen("bad.list", "a");
+ fwrite(shrinked_filename, sizeof(char), strlen(shrinked_filename), fw);
+ char *new_line = "\n";
+ fwrite(new_line, sizeof(char), strlen(new_line), fw);
+ fclose(fw);
return make_image(10,10,3);
//exit(EXIT_FAILURE);
}
@@ -1764,10 +1769,15 @@
int w, h, c;
unsigned char *data = stbi_load(filename, &w, &h, &c, channels);
if (!data) {
- fprintf(stderr, "Cannot load image \"%s\"\nSTB Reason: %s\n", filename, stbi_failure_reason());
- char buff[256];
- sprintf(buff, "echo %s >> bad.list", filename);
- system(buff);
+ char shrinked_filename[1024];
+ if (strlen(filename) >= 1024) sprintf(shrinked_filename, "name is too long");
+ else sprintf(shrinked_filename, "%s", filename);
+ fprintf(stderr, "Cannot load image \"%s\"\nSTB Reason: %s\n", shrinked_filename, stbi_failure_reason());
+ FILE* fw = fopen("bad.list", "a");
+ fwrite(shrinked_filename, sizeof(char), strlen(shrinked_filename), fw);
+ char *new_line = "\n";
+ fwrite(new_line, sizeof(char), strlen(new_line), fw);
+ fclose(fw);
return make_image(10, 10, 3);
//exit(EXIT_FAILURE);
}
--
Gitblit v1.10.0