xref: /netbsd-src/external/bsd/openldap/dist/libraries/liblutil/memcmp.c (revision 549b59ed3ccf0d36d3097190a0db27b770f3a839)
1*549b59edSchristos /*	$NetBSD: memcmp.c,v 1.3 2021/08/14 16:14:58 christos Exp $	*/
24e6df137Slukem 
3d11b170bStron /* $OpenLDAP$ */
42de962bdSlukem /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
52de962bdSlukem  *
6*549b59edSchristos  * Copyright 1998-2021 The OpenLDAP Foundation.
72de962bdSlukem  * All rights reserved.
82de962bdSlukem  *
92de962bdSlukem  * Redistribution and use in source and binary forms, with or without
102de962bdSlukem  * modification, are permitted only as authorized by the OpenLDAP
112de962bdSlukem  * Public License.
122de962bdSlukem  *
132de962bdSlukem  * A copy of this license is available in the file LICENSE in the
142de962bdSlukem  * top-level directory of the distribution or, alternatively, at
152de962bdSlukem  * <http://www.OpenLDAP.org/license.html>.
162de962bdSlukem  */
172de962bdSlukem 
18376af7d7Schristos #include <sys/cdefs.h>
19*549b59edSchristos __RCSID("$NetBSD: memcmp.c,v 1.3 2021/08/14 16:14:58 christos Exp $");
20376af7d7Schristos 
212de962bdSlukem #include "portable.h"
222de962bdSlukem 
232de962bdSlukem #include <ac/string.h>
242de962bdSlukem 
252de962bdSlukem /*
262de962bdSlukem  * Memory Compare
272de962bdSlukem  */
282de962bdSlukem int
292de962bdSlukem (lutil_memcmp)(const void *v1, const void *v2, size_t n)
302de962bdSlukem {
312de962bdSlukem     if (n != 0) {
322de962bdSlukem 		const unsigned char *s1=v1, *s2=v2;
332de962bdSlukem         do {
342de962bdSlukem             if (*s1++ != *s2++) return *--s1 - *--s2;
352de962bdSlukem         } while (--n != 0);
362de962bdSlukem     }
372de962bdSlukem     return 0;
382de962bdSlukem }
39