When I run the the openssl evptest suite in purify runtime memory usage analysis tool
it reports lots of memory segment errors in the AES crypto functions.
If I build openssl with AES assembler code disabled the same test
runs without any errors from purify.
Anyone seen this before?
The test was performed on a RedHat Enterprise Linux 3.0 x86 32-bit system
Code compiled with gcc version 3.2.3
Test results attached.

/Leif Thuresson



rh3:~/src/openssl-0.9.8a/test:45> ./evp_test evptests.txt
Purify or PureCoverage slave: Warning: Can't open display "", using tty mode.
****  Purify instrumented ./evp_test (pid 505 at Mon Apr 10 15:45:44 2006)
  * Purify 2003a.06.12 Linux (32-bit) (c) Copyright IBM Corp. 1992, 2004 All 
rights reserved.
  * For contact information type: "purify -help"
  * For Purify Viewer output, set the DISPLAY environment variable.
  * Options settings: -purify \
    -purify-home=/opt/rational/releases/purify.i386_linux2.2003a.06.12 \
    -gcc3_path=/usr/bin/gcc \
    -cache-dir=/opt/rational/releases/purify.i386_linux2.2003a.06.12/cache
  * License successfully checked out.
  * Command-line: ./evp_test evptests.txt
Testing digest SHA1
Plaintext
0000 61 62 63
Digest
0000 a9 99 3e 36 47 06 81 6a ba 3e 25 71 78 50 c2 6c
0010 9c d0 d8 9d
 
Testing digest MD5
Plaintext
Digest
0000 d4 1d 8c d9 8f 00 b2 04 e9 80 09 98 ec f8 42 7e
 
Testing digest MD5
Plaintext
0000 61
Digest
0000 0c c1 75 b9 c0 f1 b6 a8 31 c3 99 e2 69 77 26 61
 
Testing digest MD5
Plaintext
0000 61 62 63
Digest
0000 90 01 50 98 3c d2 4f b0 d6 96 3f 7d 28 e1 7f 72
 
Testing digest MD5
Plaintext
0000 6d 65 73 73 61 67 65 20 64 69 67 65 73 74
Digest
0000 f9 6b 69 7d 7c b7 93 8d 52 5a 2f 31 aa f1 61 d0
 
Testing digest MD5
Plaintext
0000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70
0010 71 72 73 74 75 76 77 78 79 7a
Digest
0000 c3 fc d3 d7 61 92 e4 00 7d fb 49 6c ca 67 e1 3b
 
Testing digest MD5
Plaintext
0000 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50
0010 51 52 53 54 55 56 57 58 59 5a 61 62 63 64 65 66
0020 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76
0030 77 78 79 7a 30 31 32 33 34 35 36 37 38 39
Digest
0000 d1 74 ab 98 d2 77 d9 f5 a5 61 1c 2c 9f 41 9d 9f
 
Testing digest MD5
Plaintext
0000 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36
0010 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32
0020 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38
0030 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34
0040 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30
Digest
0000 57 ed f4 a2 2b e3 c9 55 ac 49 da 2e 21 07 b6 7a
 
Testing cipher AES-128-ECB(encrypt)
Key
0000 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
Plaintext
0000 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff
Ciphertext
0000 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        AES_encrypt    [libcrypto.a]
        __libc_start_main [libc.so.6]
        _start         [crt1.o]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6d4 for 4 bytes ending at 0xbfffb6d8,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6cc for 4 bytes ending at 0xbfffb6d0,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6d0 for 4 bytes ending at 0xbfffb6d4,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c4 for 4 bytes ending at 0xbfffb6c8,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c8 for 4 bytes ending at 0xbfffb6cc,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6cc for 4 bytes ending at 0xbfffb6d0,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c4 for 4 bytes ending at 0xbfffb6c8,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c8 for 4 bytes ending at 0xbfffb6cc,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6d0 for 4 bytes ending at 0xbfffb6d4,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6cc for 4 bytes ending at 0xbfffb6d0,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c4 for 4 bytes ending at 0xbfffb6c8,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c8 for 4 bytes ending at 0xbfffb6cc,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6cc for 4 bytes ending at 0xbfffb6d0,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c4 for 4 bytes ending at 0xbfffb6c8,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        _x86_AES_encrypt [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6c8 for 4 bytes ending at 0xbfffb6cc,
    beginning in the stack which ends at 0xbffff000.
 
****  Purify instrumented ./evp_test (pid 505)  ****
MSE: Memory segment error:
  * This is occurring while in:
        AES_encrypt    [libcrypto.a]
  * Accessing a memory range that crosses a memory segment boundary.
    Addressing 0xbfffb6d4 for 4 bytes ending at 0xbfffb6d8,
    beginning in the stack which ends at 0xbffff000.
Ciphertext mismatch
Got
0000 06 93 93 51 b4 da 5d 35 2c 31 5b 71 ea 65 a1 08
Expected
0000 69 c4 e0 d8 6a 7b 04 30 d8 cd b7 80 70 b4 c5 5a
 
****  Purify instrumented ./evp_test (pid 505)  ****
Current file descriptors in use: 6
FIU: file descriptor 0: <stdin>
FIU: file descriptor 1: <stdout>
FIU: file descriptor 2: <stderr>
FIU: file descriptor 3: "evptests.txt", O_RDONLY
   * File info: -rw-r--r--  1 leif     dev          16929 Apr 10 15:37
   * File position: 4096
   * This file descriptor was allocated from:
        open           [rtlib.o]
        _IO_file_open  [libc.so.6]
        _IO_file_fopen@@GLIBC_2.1 [libc.so.6]
        __fopen_internal [libc.so.6]
        fopen@@GLIBC_2.1 [libc.so.6]
        main           [evp_test.c:336]
FIU: file descriptor 26: <reserved for Purify internal use>
FIU: file descriptor 27: <reserved for Purify internal use>
 
****  Purify instrumented ./evp_test (pid 505)  ****
Purify: Searching for all memory leaks...
 
Memory leaked: 0 bytes (0%); potentially leaked: 0 bytes (0%)
 
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
                         Blocks        Bytes
              Leaked          0            0
  Potentially Leaked          0            0
              In-Use       2302        50852
  ----------------------------------------
     Total Allocated       2302        50852
 
****  Purify instrumented ./evp_test (pid 505)  ****
  * Program exited with status code 9.
  * 16 access errors, 72 total occurrences.
  * 0 bytes leaked.
  * 0 bytes potentially leaked.
  * Basic memory usage (including Purify overhead):
    2784168 code
    265408 data/bss
    271168 heap (peak use)
    14504 stack
  * Shared library memory usage (including Purify overhead):
    19824 libdl.so.2_pure_p3_c0_103152015_2421-4EL_32 (shared code)
    628 libdl.so.2_pure_p3_c0_103152015_2421-4EL_32 (private data)
    13618 libinternal_stubs.so.1.0 (shared code)
    1404 libinternal_stubs.so.1.0 (private data)
    3022468 libc.so.6_pure_p3_c0_103152015_2421-4EL_32 (shared code)
    22444 libc.so.6_pure_p3_c0_103152015_2421-4EL_32 (private data)
    85968 ld-linux.so.2 (shared code)
    1876 ld-linux.so.2 (private data)
  * Memory mapped usage:
    4096 mmap'd at 0xb6c52000
 


Reply via email to