Re: [PATCH v2 7/8] CryptoPkg/CrtLibSupport: fix strcpy


Yao, Jiewen
 

Can we remove inline keyword?

I don't think it is really needed in EDKII project.

Thank you
Yao Jiewen

-----Original Message-----
From: Gerd Hoffmann <kraxel@...>
Sent: Friday, April 8, 2022 7:16 PM
To: devel@edk2.groups.io
Cc: Oliver Steffen <osteffen@...>; Yao, Jiewen
<jiewen.yao@...>; Jiang, Guomin <guomin.jiang@...>; Wang, Jian
J <jian.j.wang@...>; Xiaoyu Lu <xiaoyux.lu@...>; Pawel Polawski
<ppolawsk@...>; Gerd Hoffmann <kraxel@...>
Subject: [PATCH v2 7/8] CryptoPkg/CrtLibSupport: fix strcpy

strcpy() returns a pointer to the destination string, AsciiStrCpyS()
does not. So a simple #define does not work. Create a inline function
instead.

Signed-off-by: Gerd Hoffmann <kraxel@...>
---
CryptoPkg/Library/Include/CrtLibSupport.h | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h
b/CryptoPkg/Library/Include/CrtLibSupport.h
index 287d7f76bfb3..7c1bc7755b1c 100644
--- a/CryptoPkg/Library/Include/CrtLibSupport.h
+++ b/CryptoPkg/Library/Include/CrtLibSupport.h
@@ -395,6 +395,16 @@ inet_pton (
void *
);

+static inline char *
+strcpy (
+ char *restrict strDest,
+ const char *strSource
+ )
+{
+ AsciiStrCpyS (strDest, MAX_STRING_SIZE, strSource);
+ return strDest;
+}
+
//
// Macros that directly map functions to BaseLib, BaseMemoryLib, and
DebugLib functions
//
@@ -404,7 +414,6 @@ inet_pton (
#define memcmp(buf1, buf2, count)
(int)(CompareMem(buf1,buf2,(UINTN)(count)))
#define memmove(dest, source, count)
CopyMem(dest,source,(UINTN)(count))
#define strlen(str) (size_t)(AsciiStrnLenS(str,MAX_STRING_SIZE))
-#define strcpy(strDest, strSource)
AsciiStrCpyS(strDest,MAX_STRING_SIZE,strSource)
#define strncpy(strDest, strSource, count)
AsciiStrnCpyS(strDest,MAX_STRING_SIZE,strSource,(UINTN)count)
#define strcat(strDest, strSource)
AsciiStrCatS(strDest,MAX_STRING_SIZE,strSource)
#define strncmp(string1, string2, count)
(int)(AsciiStrnCmp(string1,string2,(UINTN)(count)))
--
2.35.1

Join devel@edk2.groups.io to automatically receive all group messages.