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