few missing allocation failure checks and releases on error paths
[openssl.git] / crypto / alphacpuid.pl
index 11f2e30ce014d22d388618f5c622e5532f8c0b1b..6356b00f94e4a0a4b3a3edd57185db76003048b3 100644 (file)
@@ -1,4 +1,15 @@
-#!/usr/bin/env perl
+#! /usr/bin/env perl
+# Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+$output = pop;
+open STDOUT,">$output";
+
 print <<'___';
 .text
 
@@ -99,19 +110,19 @@ OPENSSL_cleanse:
        beq     $0,.Laligned
 
 .Little:
+       subq    $0,8,$0
        ldq_u   $1,0($16)
        mov     $16,$2
 .Lalign:
        mskbl   $1,$16,$1
        lda     $16,1($16)
        subq    $17,1,$17
-       subq    $0,1,$0
+       addq    $0,1,$0
        beq     $17,.Lout
        bne     $0,.Lalign
 .Lout: stq_u   $1,0($2)
        beq     $17,.Ldone
        bic     $17,7,$at
-       mov     $17,$0
        beq     $at,.Little
 
 .Laligned:
@@ -120,9 +131,7 @@ OPENSSL_cleanse:
        lda     $16,8($16)
        bic     $17,7,$at
        bne     $at,.Laligned
-       beq     $17,.Ldone
-       mov     $17,$0
-       br      .Little
+       bne     $17,.Little
 .Ldone: ret    ($26)
 .end   OPENSSL_cleanse
 ___
@@ -216,3 +225,5 @@ OPENSSL_instrument_bus2:
 .end   OPENSSL_instrument_bus2
 ___
 }
+
+close STDOUT;