summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornelson%bolyard.com <devnull@localhost>2009-03-28 01:06:35 +0000
committernelson%bolyard.com <devnull@localhost>2009-03-28 01:06:35 +0000
commit9b0f983a94650c2d1c87fd6915e169cdb8500663 (patch)
tree025d7ae82669ac6df77091a2789b227f692175f3
parentb7ae600340fc923cb3c16d8683b73834f7aa81bd (diff)
downloadnss-hg-9b0f983a94650c2d1c87fd6915e169cdb8500663.tar.gz
Bug 485370: crash, bus error due to unaligned access in pkix_pl_OcspResponse_Create
r=rrelyea
-rwxr-xr-xsecurity/nss/lib/libpkix/pkix/util/pkix_tools.h5
-rwxr-xr-xsecurity/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_lifecycle.c6
-rwxr-xr-xsecurity/nss/lib/libpkix/pkix_pl_nss/system/pkix_pl_object.h2
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;