diff options
author | Werner Koch <[email protected]> | 2004-02-15 16:04:41 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2004-02-15 16:04:41 +0000 |
commit | a3c5e71a9476b17cea9d7e5073ac509172ae5cb6 (patch) | |
tree | 3d4ca7f45e4fc51da4c53f8615c362462957e76b | |
parent | Removed the unneeded alloca.h. (diff) | |
download | libassuan-a3c5e71a9476b17cea9d7e5073ac509172ae5cb6.tar.gz libassuan-a3c5e71a9476b17cea9d7e5073ac509172ae5cb6.zip |
(memrchr): Fixed implementation. Taken from gpgme.
-rw-r--r-- | src/ChangeLog | 4 | ||||
-rw-r--r-- | src/memrchr.c | 16 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ec0658c..00825fb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,7 @@ +2004-02-15 Werner Koch <[email protected]> + + * memrchr.c (memrchr): Fixed implementation. Taken from gpgme. + 2004-02-13 Werner Koch <[email protected]> * assuan-domain-connect.c: Removed the unneeded alloca.h. diff --git a/src/memrchr.c b/src/memrchr.c index 3e60c55..57cf70e 100644 --- a/src/memrchr.c +++ b/src/memrchr.c @@ -1,5 +1,5 @@ /* memrchr.c - Replacement for memrchr. - * Copyright (C) 2002 Free Software Foundation, Inc. + * Copyright (C) 2002, 2004 Free Software Foundation, Inc. * * This file is part of GnuPG. * @@ -27,10 +27,14 @@ void * memrchr (const void *block, int c, size_t size) { - void *p; + const unsigned char *p = block; - for (p = block + size; p != block; p --) - if (*p == c) - return p; - return 0; + if (size) + { + for (p += size - 1; size; p--, size--) + if (*p == c) + return (void *)p; + } + return NULL; } + |