Patchwork libmudflap: avoid legacy memory functions

login
register
mail settings
Submitter Mike Frysinger
Date Dec. 15, 2011, 4:03 p.m.
Message ID <1323965023-27232-1-git-send-email-vapier@gentoo.org>
Download mbox | patch
Permalink /patch/131693/
State New
Headers show

Comments

Mike Frysinger - Dec. 15, 2011, 4:03 p.m.
Mudflap checks a few legacy memory functions like bzero, and then passes
through the result to the C library's bzero.  However, these functions
are no longer required in the latest POSIX spec (and in previous ones,
they were marked as LEGACY), so some libraries will omit this which leads
to build failures in libmudflap.

Wrapping the legacy funcs on the frontend are fine, but that doesn't mean
that we need to implement things locally with those legacy funcs.  So use
the newer POSIX standard equivalents.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>

2011-12-15  Mike Frysinger  <vapier@gentoo.org>

	* mf-hooks2.c (bzero wrapper): Change bzero call to memset.
	(bcopy wrapper): Change bcopy call to memmove.
	(bcmp wrapper): Change bcmp call to memcmp.
	(index wrapper): Change index call to strchr.
	(rindex wrapper): Change rindex call to strrchr.
---
 libmudflap/mf-hooks2.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

Patch

diff --git a/libmudflap/mf-hooks2.c b/libmudflap/mf-hooks2.c
index c030e69..f7c493e 100644
--- a/libmudflap/mf-hooks2.c
+++ b/libmudflap/mf-hooks2.c
@@ -424,7 +424,7 @@  WRAPPER2(void, bzero, void *s, size_t n)
 {
   TRACE ("%s\n", __PRETTY_FUNCTION__);
   MF_VALIDATE_EXTENT(s, n, __MF_CHECK_WRITE, "bzero region");
-  bzero (s, n);
+  memset (s, 0, n);
 }
 
 
@@ -434,7 +434,7 @@  WRAPPER2(void, bcopy, const void *src, void *dest, size_t n)
   TRACE ("%s\n", __PRETTY_FUNCTION__);
   MF_VALIDATE_EXTENT(src, n, __MF_CHECK_READ, "bcopy src");
   MF_VALIDATE_EXTENT(dest, n, __MF_CHECK_WRITE, "bcopy dest");
-  bcopy (src, dest, n);
+  memmove (dest, src, n);
 }
 
 
@@ -444,7 +444,7 @@  WRAPPER2(int, bcmp, const void *s1, const void *s2, size_t n)
   TRACE ("%s\n", __PRETTY_FUNCTION__);
   MF_VALIDATE_EXTENT(s1, n, __MF_CHECK_READ, "bcmp 1st arg");
   MF_VALIDATE_EXTENT(s2, n, __MF_CHECK_READ, "bcmp 2nd arg");
-  return bcmp (s1, s2, n);
+  return memcmp (s1, s2, n);
 }
 
 
@@ -453,7 +453,7 @@  WRAPPER2(char *, index, const char *s, int c)
   size_t n = strlen (s);
   TRACE ("%s\n", __PRETTY_FUNCTION__);
   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "index region");
-  return index (s, c);
+  return strchr (s, c);
 }
 
 
@@ -462,7 +462,7 @@  WRAPPER2(char *, rindex, const char *s, int c)
   size_t n = strlen (s);
   TRACE ("%s\n", __PRETTY_FUNCTION__);
   MF_VALIDATE_EXTENT(s, CLAMPADD(n, 1), __MF_CHECK_READ, "rindex region");
-  return rindex (s, c);
+  return strrchr (s, c);
 }
 
 /* XXX:  stpcpy, memccpy */