From 54951dfb930bea890aef14be02236f81b3a19f2e Mon Sep 17 00:00:00 2001
From: cheliequan <liequanche@126.com>
Date: 星期二, 27 十二月 2022 10:23:43 +0800
Subject: [PATCH] 更新消息通知库,使用basic_create_ipc_server函数创建消息监听服务器

---
 src/memfd.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/memfd.c b/src/memfd.c
index 04ced4d..00df30e 100644
--- a/src/memfd.c
+++ b/src/memfd.c
@@ -12,6 +12,7 @@
 #include <time.h>
 #include <stdarg.h>
 #include "memfd.h"
+#include <assert.h>
 
 #define errExit(msg)    do { perror(msg); exit(EXIT_FAILURE); \
 } while (0)
@@ -70,12 +71,16 @@
   struct stat st;
 
   /* Create an anonymous file in tmpfs; */
+  if(0 >= len)
+  {
+      return -1;
+  }
 
   fd = sys_memfd_create(name, MFD_CLOEXEC);
 
   if (fd == -1)
   {
-    errExit("memfd_create");
+      errExit("memfd_create");
   }
 
   /* Size the file as specified on the command line */
@@ -83,7 +88,7 @@
   mydebug("length: %zu\n", len);
   if (ftruncate(fd, len) == -1)
   {
-      errExit("truncate");
+      errExit("ftruncate");
   }
 
   if (fstat (fd, &st))
@@ -174,12 +179,12 @@
     }
     len = st.st_size;
 
-    ret = munmap(*ppaddr, len);
+    ret = munmap((void *)*ppaddr, len);
     if (ret == -1)
     {
         errExit("munmap()");
     }
-
+    *ppaddr = NULL;
     mydebug("length: %zu, atime: %lu.%lu\n", len, st.st_atim.tv_sec, st.st_atim.tv_nsec);
     return len;
 }

--
Gitblit v1.8.0