Blame SOURCES/Bug-1174527-fixsegfault.patch

5bcea7
diff --git a/lib/pkcs12/p12local.c b/lib/pkcs12/p12local.c
5bcea7
--- a/lib/pkcs12/p12local.c
5bcea7
+++ b/lib/pkcs12/p12local.c
5bcea7
@@ -923,17 +923,18 @@ sec_pkcs12_convert_item_to_unicode(PLAre
5bcea7
 	if(!arena) {
5bcea7
 	    PORT_Free(dest->data);
5bcea7
 	    dest->data = NULL;
5bcea7
 	    dest->len = 0;
5bcea7
 	}
5bcea7
 	return PR_FALSE;
5bcea7
     }
5bcea7
 
5bcea7
-    if((dest->data[dest->len-1] || dest->data[dest->len-2]) && zeroTerm) {
5bcea7
+    if ((dest->len >= 2) &&
5bcea7
+	(dest->data[dest->len-1] || dest->data[dest->len-2]) && zeroTerm) {
5bcea7
 	if(dest->len + 2 > 3 * src->len) {
5bcea7
 	    if(arena) {
5bcea7
 		dest->data = (unsigned char*)PORT_ArenaGrow(arena, 
5bcea7
 						     dest->data, dest->len,
5bcea7
 						     dest->len + 2);
5bcea7
 	    } else {
5bcea7
 		dest->data = (unsigned char*)PORT_Realloc(dest->data, 
5bcea7
 							  dest->len + 2);