lkml.org 
[lkml]   [2010]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] Repalce strncmp by memcmp
On 29.11.2010 05:29, Ming Lei wrote:
> Hi,
>
> 2010/11/29 Pavel Vasilyev <pavel@pavlinux.ru>:
>> This patch replace all strncmp(a, b, c) by memcmp(a, b, c).
>>
>> I test on x86_64 (AMD Opteron 285).
> In fact, memcmp doesn't handle case of tail of string, so
> it is not safe to replace strncmp with memcmp
>
#include <stdio.h>
#include <errno.h>

int main() {

char *STR = "XXXX\0";
char *XXX = "XXXX";
int a, b;

errno = 0; a = memcmp(STR, XXX, 5); a += errno;
errno = 0; b = strncmp(STR, XXX, 5); b += errno;
printf("5 chars: %d %d \n", a, b);
errno = 0; a = memcmp(STR, XXX, 4); a += errno;
errno = 0; b = strncmp(STR, XXX, 4); b += errno;
printf("4 chars: %d %d \n", a, b);

printf("SWAP STRINGS\n");

errno = 0; a = memcmp(XXX, STR, 5); a += errno;
errno = 0; b = strncmp(XXX, STR, 5); b += errno;
printf("5 chars: %d %d \n", a, b);
errno = 0; a = memcmp(XXX, STR, 4); a += errno;
errno = 0; b = strncmp(XXX, STR, 4); b += errno;
printf("4 chars: %d %d \n", a, b);

return 0;
}
----
# ./a.out
5 chars: 0 0
4 chars: 0 0
SWAP STRINGS
5 chars: 0 0
4 chars: 0 0

But I think the same thing ;)

--

Pavel.



\
 
 \ /
  Last update: 2010-11-29 04:13    [W:0.124 / U:2.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site