Commit 7a06050c authored by Andy Polyakov's avatar Andy Polyakov
Browse files

"Overload" SunOS 4.x memcmp, which ruins ASN1_OBJECT table lookups.

PR: 1196
Submitted by: Russel Ruby
parent 6f9afa68
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@

#include <stddef.h>
#include <string.h>
#include "cryptlib.h"
#include <openssl/asn1.h>
#include <openssl/asn1t.h>
#include <openssl/objects.h>
+9 −0
Original line number Diff line number Diff line
@@ -94,3 +94,12 @@ int OPENSSL_strcasecmp(const char *str1, const char *str2)
#endif
	}

int OPENSSL_memcmp(const void *v1,const void *v2,size_t n)
	{
	const unsigned char *c1=v1,*c2=v2;
	int ret=0;

	while(n && (ret=*c1-*c2)==0) n--,c1++,c2++;

	return ret;
	}
+1 −0
Original line number Diff line number Diff line
@@ -63,5 +63,6 @@

int OPENSSL_strcasecmp(const char *str1, const char *str2);
int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n);
int OPENSSL_memcmp(const void *p1,const void *p2,size_t n);

#endif
+3 −0
Original line number Diff line number Diff line
@@ -565,6 +565,9 @@ extern HINSTANCE _hInstance;
extern char *sys_errlist[]; extern int sys_nerr;
# define strerror(errnum) \
	(((errnum)<0 || (errnum)>=sys_nerr) ? NULL : sys_errlist[errnum])
  /* Being signed SunOS 4.x memcpy breaks ASN1_OBJECT table lookup */
#include "o_str.h"
# define memcmp OPENSSL_memcmp
#endif

#ifndef OPENSSL_EXIT