From 8e0de102ce0b91cb15c2cbc735ff893acd027420 Mon Sep 17 00:00:00 2001
From: dan <me@danrh.co.uk>
Date: Fri, 14 Apr 2023 20:52:39 -0400
Subject: pw should actually be checked

---
 lib/exif_wrapper.cpp | 24 ++++++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)

(limited to 'lib')

diff --git a/lib/exif_wrapper.cpp b/lib/exif_wrapper.cpp
index 21ee6c6..c4088ef 100644
--- a/lib/exif_wrapper.cpp
+++ b/lib/exif_wrapper.cpp
@@ -93,11 +93,31 @@ extern "C" void setExifOrientation(uint8_t* imgBytes, unsigned int size, unsigne
         image->setExifData(exifData);
         image->writeMetadata();
 
+
+        //TODO: fix problem of img file corruption caused by output being a different size
+        //      to the input buffer
+
+        FILE *fileptr;
+        char *buffer;
+        long filelen;
+
+        fileptr = fopen(tmpFileName, "rb");
+        fseek(fileptr, 0, SEEK_END);
+        filelen = ftell(fileptr);
+        rewind(fileptr);
+
+        buffer = (char *)malloc(filelen * sizeof(char));
+        fread(buffer, filelen, 1, fileptr);
+        fclose(fileptr);
+
+        printf("new len: %ld old len: %d", filelen, size);
+
+
         // reopen temp file, copy result back into byte array
-        FILE* fileptr = fopen(tmpFileName, "rb");
+        fileptr = fopen(tmpFileName, "rb");
         fread(imgBytes, size, 1, fileptr);
         fclose(fileptr);
-        unlink(tmpFileName);
+//        unlink(tmpFileName);
     }
     catch (Exiv2::Error& e) {
         std::cout << "Caught Exiv2 exception '" << e.what() << "'\n";
-- 
cgit v1.2.3