#14465: Update openssl to tag android-4.0.4_r2.1
diff --git a/jni/openssl/crypto/asn1/asn_mime.c b/jni/openssl/crypto/asn1/asn_mime.c
index 54a704a..c1d1b12 100644
--- a/jni/openssl/crypto/asn1/asn_mime.c
+++ b/jni/openssl/crypto/asn1/asn_mime.c
@@ -377,12 +377,8 @@
 	BIO *tmpbio;
 	const ASN1_AUX *aux = it->funcs;
 	ASN1_STREAM_ARG sarg;
-	int rv = 1;
 
-	/* If data is not deteched or resigning then the output BIO is
-	 * already set up to finalise when it is written through.
-	 */
-	if (!(flags & SMIME_DETACHED) || (flags & PKCS7_REUSE_DIGEST))
+	if (!(flags & SMIME_DETACHED))
 		{
 		SMIME_crlf_copy(data, out, flags);
 		return 1;
@@ -409,7 +405,7 @@
 
 	/* Finalize structure */
 	if (aux->asn1_cb(ASN1_OP_DETACHED_POST, &val, it, &sarg) <= 0)
-		rv = 0;
+		return 0;
 
 	/* Now remove any digests prepended to the BIO */
 
@@ -420,7 +416,7 @@
 		sarg.ndef_bio = tmpbio;
 		}
 
-	return rv;
+	return 1;
 
 	}
 
@@ -490,9 +486,9 @@
 
 		if(strcmp(hdr->value, "application/x-pkcs7-signature") &&
 			strcmp(hdr->value, "application/pkcs7-signature")) {
+			sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
 			ASN1err(ASN1_F_SMIME_READ_ASN1,ASN1_R_SIG_INVALID_MIME_TYPE);
 			ERR_add_error_data(2, "type: ", hdr->value);
-			sk_MIME_HEADER_pop_free(headers, mime_hdr_free);
 			sk_BIO_pop_free(parts, BIO_vfree);
 			return NULL;
 		}
@@ -805,7 +801,7 @@
 	if(name) {
 		if(!(tmpname = BUF_strdup(name))) return NULL;
 		for(p = tmpname ; *p; p++) {
-			c = (unsigned char)*p;
+			c = *p;
 			if(isupper(c)) {
 				c = tolower(c);
 				*p = c;
@@ -815,7 +811,7 @@
 	if(value) {
 		if(!(tmpval = BUF_strdup(value))) return NULL;
 		for(p = tmpval ; *p; p++) {
-			c = (unsigned char)*p;
+			c = *p;
 			if(isupper(c)) {
 				c = tolower(c);
 				*p = c;
@@ -839,7 +835,7 @@
 		tmpname = BUF_strdup(name);
 		if(!tmpname) return 0;
 		for(p = tmpname ; *p; p++) {
-			c = (unsigned char)*p;
+			c = *p;
 			if(isupper(c)) {
 				c = tolower(c);
 				*p = c;
@@ -862,17 +858,12 @@
 static int mime_hdr_cmp(const MIME_HEADER * const *a,
 			const MIME_HEADER * const *b)
 {
-	if (!(*a)->name || !(*b)->name)
-		return !!(*a)->name - !!(*b)->name;
-
 	return(strcmp((*a)->name, (*b)->name));
 }
 
 static int mime_param_cmp(const MIME_PARAM * const *a,
 			const MIME_PARAM * const *b)
 {
-	if (!(*a)->param_name || !(*b)->param_name)
-		return !!(*a)->param_name - !!(*b)->param_name;
 	return(strcmp((*a)->param_name, (*b)->param_name));
 }