Make sure a bad parameter to RSA_verify_PKCS1_PSS() doesn't lead to a crash.
[openssl.git] / crypto / perlasm / cbc.pl
index 0145c4f0cc6e1dbd14173d52b71d3f44cc8fa61f..e43dc9ae15edbb90597ac6613c2923421822f12f 100644 (file)
@@ -146,9 +146,15 @@ sub cbc
        &mov($count,    &wparam(2));    # length
        &and($count,    7);
        &jz(&label("finish"));
+       &call(&label("PIC_point"));
+&set_label("PIC_point");
+       &blindpop("edx");
+       &lea("ecx",&DWP(&label("cbc_enc_jmp_table")."-".&label("PIC_point"),"edx"));
+       &mov($count,&DWP(0,"ecx",$count,4))
+       &add($count,"edx");
        &xor("ecx","ecx");
        &xor("edx","edx");
-       &mov($count,&DWP(&label("cbc_enc_jmp_table"),"",$count,4));
+       #&mov($count,&DWP(&label("cbc_enc_jmp_table"),"",$count,4));
        &jmp_ptr($count);
 
 &set_label("ej7");
@@ -316,24 +322,27 @@ sub cbc
 
        &function_end_A($name);
 
-       &set_label("cbc_enc_jmp_table",1);
+       &align(64);
+       &set_label("cbc_enc_jmp_table");
        &data_word("0");
-       &data_word(&label("ej1"));
-       &data_word(&label("ej2"));
-       &data_word(&label("ej3"));
-       &data_word(&label("ej4"));
-       &data_word(&label("ej5"));
-       &data_word(&label("ej6"));
-       &data_word(&label("ej7"));
-       &set_label("cbc_dec_jmp_table",1);
-       &data_word("0");
-       &data_word(&label("dj1"));
-       &data_word(&label("dj2"));
-       &data_word(&label("dj3"));
-       &data_word(&label("dj4"));
-       &data_word(&label("dj5"));
-       &data_word(&label("dj6"));
-       &data_word(&label("dj7"));
+       &data_word(&label("ej1")."-".&label("PIC_point"));
+       &data_word(&label("ej2")."-".&label("PIC_point"));
+       &data_word(&label("ej3")."-".&label("PIC_point"));
+       &data_word(&label("ej4")."-".&label("PIC_point"));
+       &data_word(&label("ej5")."-".&label("PIC_point"));
+       &data_word(&label("ej6")."-".&label("PIC_point"));
+       &data_word(&label("ej7")."-".&label("PIC_point"));
+       # not used
+       #&set_label("cbc_dec_jmp_table",1);
+       #&data_word("0");
+       #&data_word(&label("dj1")."-".&label("PIC_point"));
+       #&data_word(&label("dj2")."-".&label("PIC_point"));
+       #&data_word(&label("dj3")."-".&label("PIC_point"));
+       #&data_word(&label("dj4")."-".&label("PIC_point"));
+       #&data_word(&label("dj5")."-".&label("PIC_point"));
+       #&data_word(&label("dj6")."-".&label("PIC_point"));
+       #&data_word(&label("dj7")."-".&label("PIC_point"));
+       &align(64);
 
        &function_end_B($name);