[Replicant] [libsamsung-ipc][PATCH 2/4] ipc_nv_data_md5_calculate: print errors when ipc_client is defined.

Denis 'GNUtoo' Carikli GNUtoo at cyberdimension.org
Thu Jan 23 17:02:53 UTC 2020


Without that, there are no ways to know the cause of failures with
ipc_nv_data_md5_calculate.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at cyberdimension.org>
---
 include/rfs.h       |  5 +++--
 samsung-ipc/rfs.c   | 25 +++++++++++++++----------
 tools/nv_data-md5.c |  3 ++-
 3 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/include/rfs.h b/include/rfs.h
index 7950f16..a374ce0 100644
--- a/include/rfs.h
+++ b/include/rfs.h
@@ -67,8 +67,9 @@ struct ipc_rfs_nv_write_item_response_data {
  * Helpers
  */
 
-char *ipc_nv_data_md5_calculate(const char *path, const char *secret,
-    size_t size, size_t chunk_size);
+char *ipc_nv_data_md5_calculate(struct ipc_client *client, const char *path,
+				const char *secret, size_t size,
+				size_t chunk_size);
 int ipc_nv_data_path_check(struct ipc_client *client);
 int ipc_nv_data_md5_path_check(struct ipc_client *client);
 int ipc_nv_data_backup_path_check(struct ipc_client *client);
diff --git a/samsung-ipc/rfs.c b/samsung-ipc/rfs.c
index 86205ba..91ff2c0 100644
--- a/samsung-ipc/rfs.c
+++ b/samsung-ipc/rfs.c
@@ -32,20 +32,25 @@
 
 #include <ipc.h>
 
-char *ipc_nv_data_md5_calculate(const char *path, const char *secret,
-    size_t size, size_t chunk_size)
+char *ipc_nv_data_md5_calculate(struct ipc_client *client,
+				const char *path, const char *secret,
+				size_t size, size_t chunk_size)
 {
     void *data = NULL;
     char *md5_string = NULL;
     unsigned char md5_hash[MD5_DIGEST_LENGTH] = { 0 };
     MD5_CTX ctx;
 
-    if (secret == NULL)
-        return NULL;
+    if (secret == NULL) {
+	    ipc_client_log(client, "%s: Failed: secret is NULL", __FUNCTION__);
+	    return NULL;
+    }
 
     data = file_data_read(path, size, chunk_size, 0);
-    if (data == NULL)
-        return NULL;
+    if (data == NULL) {
+	    ipc_client_log(client, "%s failed: data is NULL",  __FUNCTION__);
+	    return NULL;
+    }
 
     MD5_Init(&ctx);
     MD5_Update(&ctx, data, size);
@@ -213,7 +218,7 @@ int ipc_nv_data_check(struct ipc_client *client)
         goto error;
     }
 
-    md5_string = ipc_nv_data_md5_calculate(path, secret, size, chunk_size);
+    md5_string = ipc_nv_data_md5_calculate(client, path, secret, size, chunk_size);
     if (md5_string == NULL) {
         ipc_client_log(client, "Calculating nv_data md5 failed");
         goto error;
@@ -292,7 +297,7 @@ int ipc_nv_data_backup_check(struct ipc_client *client)
         goto error;
     }
 
-    backup_md5_string = ipc_nv_data_md5_calculate(backup_path, secret, size, chunk_size);
+    backup_md5_string = ipc_nv_data_md5_calculate(client, backup_path, secret, size, chunk_size);
     if (backup_md5_string == NULL) {
         ipc_client_log(client, "Calculating nv_data backup md5 failed");
         goto error;
@@ -372,7 +377,7 @@ int ipc_nv_data_backup(struct ipc_client *client)
         goto error;
     }
 
-    md5_string = ipc_nv_data_md5_calculate(path, secret, size, chunk_size);
+    md5_string = ipc_nv_data_md5_calculate(client, path, secret, size, chunk_size);
     if (md5_string == NULL) {
         ipc_client_log(client, "Calculating nv_data md5 failed");
         goto error;
@@ -622,7 +627,7 @@ int ipc_nv_data_write(struct ipc_client *client, const void *data, size_t size,
     if (size == 0)
         goto error;
 
-    md5_string = ipc_nv_data_md5_calculate(path, secret, size, chunk_size);
+    md5_string = ipc_nv_data_md5_calculate(client, path, secret, size, chunk_size);
     if (md5_string == NULL) {
         ipc_client_log(client, "Calculating nv_data md5 failed");
         goto error;
diff --git a/tools/nv_data-md5.c b/tools/nv_data-md5.c
index 78901ef..d998296 100644
--- a/tools/nv_data-md5.c
+++ b/tools/nv_data-md5.c
@@ -43,7 +43,8 @@ int main(int argc, char *argv[])
 
     path = argv[1];
 
-    md5_string = ipc_nv_data_md5_calculate(path, secret, size, chunk_size);
+    md5_string = ipc_nv_data_md5_calculate(NULL, path, secret, size,
+                                           chunk_size);
     if (md5_string == NULL) {
         fprintf(stderr, "Calculating nv_data backup md5 failed\n");
         return 1;
-- 
2.24.1



More information about the Replicant mailing list