diff options
author | nelson%bolyard.com <devnull@localhost> | 2009-03-28 01:06:35 +0000 |
---|---|---|
committer | nelson%bolyard.com <devnull@localhost> | 2009-03-28 01:06:35 +0000 |
commit | 9b0f983a94650c2d1c87fd6915e169cdb8500663 (patch) | |
tree | 025d7ae82669ac6df77091a2789b227f692175f3 /security | |
parent | b7ae600340fc923cb3c16d8683b73834f7aa81bd (diff) | |
download | nss-hg-9b0f983a94650c2d1c87fd6915e169cdb8500663.tar.gz |
Bug 485370: crash, bus error due to unaligned access in pkix_pl_OcspResponse_Create
r=rrelyea
Diffstat (limited to 'security')
3 files changed, 7 insertions, 6 deletions
diff --git a/security/nss/lib/libpkix/pkix/util/pkix_tools.h b/security/nss/lib/libpkix/pkix/util/pkix_tools.h index eb43f803e..dd7d5aac7 100755 --- a/security/nss/lib/libpkix/pkix/util/pkix_tools.h +++ b/security/nss/lib/libpkix/pkix/util/pkix_tools.h @@ -49,6 +49,7 @@ #include <stddef.h> #include <stdio.h> #include "secport.h" +#include "prlong.h" /* private PKIX system headers */ #include "pkix_basicconstraintschecker.h" @@ -1466,8 +1467,8 @@ extern const char *PKIX_ERRORCLASSNAMES[PKIX_NUMERRORCLASSES]; extern PRLogModuleInfo *pkixLog; -#define PKIX_MAGIC_HEADER (PKIX_UInt32) 0xBEEFC0DE -#define PKIX_MAGIC_HEADER_DESTROYED (PKIX_UInt32) 0xDEADC0DE +#define PKIX_MAGIC_HEADER LL_INIT(0xFEEDC0FF, 0xEEFACADE) +#define PKIX_MAGIC_HEADER_DESTROYED LL_INIT(0xBAADF00D, 0xDEADBEEF) /* see source file for function documentation */ diff --git a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c index ae33daeb8..2a7187570 100755 --- a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c +++ b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c @@ -62,9 +62,9 @@ struct PKIX_Alloc_Error_ObjectStruct { }; typedef struct PKIX_Alloc_Error_ObjectStruct PKIX_Alloc_Error_Object; -static PKIX_Alloc_Error_Object pkix_Alloc_Error_Data = { +static const PKIX_Alloc_Error_Object pkix_Alloc_Error_Data = { { - (PKIX_UInt32)PKIX_MAGIC_HEADER, /* PKIX_UInt32 magicHeader */ + PKIX_MAGIC_HEADER, /* PRUint64 magicHeader */ (PKIX_UInt32)PKIX_ERROR_TYPE, /* PKIX_UInt32 type */ (PKIX_UInt32)1, /* PKIX_UInt32 references */ /* Warning! Cannot Ref Count with NULL lock */ @@ -83,7 +83,7 @@ static PKIX_Alloc_Error_Object pkix_Alloc_Error_Data = { PKIX_Error* PKIX_ALLOC_ERROR(void) { - return &pkix_Alloc_Error_Data.error; + return (PKIX_Error *)&pkix_Alloc_Error_Data.error; } #ifdef PKIX_OBJECT_LEAK_TEST diff --git a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.h b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.h index 872f169cc..b683fec87 100755 --- a/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.h +++ b/security/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.h @@ -71,7 +71,7 @@ extern "C" { /* PKIX_PL_Object Structure Definition */ struct PKIX_PL_ObjectStruct { - PKIX_UInt32 magicHeader; + PRUint64 magicHeader; PKIX_UInt32 type; PKIX_Int32 references; PRLock *lock; |