mhogomchungu / zuluCrypt

zuluCrypt is a front end to cryptsetup and tcplay and it allows easy management of encrypted block devices
https://mhogomchungu.github.io/zuluCrypt
Other
504 stars 60 forks source link

Opening truecrypt volume: double free or corruption (out) #149

Closed rocketraman closed 2 years ago

rocketraman commented 3 years ago

When I try to open a truecrypt volume from the command line, I get a double free or corruption (out) error.

[root@edison ~]# zuluCrypt-cli -O -t tcrypt -d /dev/sdg1
Enter passphrase: 
ERROR: Volume could not be opened with the presented key
double free or corruption (out)
Aborted (core dumped)

I have confirmed the passphrase is correct. When I use the zuluCrypt GUI using the same passphrase, it mounts the volume correctly, but I'm trying to create a script that opens the volume but does not mount it, as I would like to run some block level checks before mounting (like blkid and ntfsresize -fi).

Everything works fine if I do zuluCrypt-cli --test.

Running on Fedora 32, version 5.7.1:

[root@edison ~]# rpm -q --info zulucrypt
Name        : zulucrypt
Version     : 5.7.1
Release     : 1.fc32
rocketraman commented 3 years ago

Output from journal:

Oct 16 18:38:59 edison systemd-coredump[3400686]: Process 3399115 (zuluCrypt-cli) of user 0 dumped core.

                                                  Stack trace of thread 3399115:
                                                  #0  0x00007f3abf9a59e5 raise (libc.so.6 + 0x3c9e5)
                                                  #1  0x00007f3abf98e895 abort (libc.so.6 + 0x25895)
                                                  #2  0x00007f3abf9e9857 __libc_message (libc.so.6 + 0x80857)
                                                  #3  0x00007f3abf9f0d7c malloc_printerr (libc.so.6 + 0x87d7c)
                                                  #4  0x00007f3abf9f23c0 _int_free (libc.so.6 + 0x893c0)
                                                  #5  0x00007f3abfb86260 StringListClearDelete (libzuluCrypt.so.1.2.0 + 0x20260)
                                                  #6  0x00007f3abfbaa5da zuluExit (libzuluCrypt-exe.so.1.2.0 + 0xa5da)
                                                  #7  0x00007f3abfbab30e zuluCryptEXEOpenVolume (libzuluCrypt-exe.so.1.2.0 + 0xb30e)
                                                  #8  0x000055d0691f2545 main (zuluCrypt-cli + 0x3545)
                                                  #9  0x00007f3abf990042 __libc_start_main (libc.so.6 + 0x27042)
                                                  #10 0x000055d0691f27fe _start (zuluCrypt-cli + 0x37fe)
rocketraman commented 3 years ago

Valgrind output:

==3455694== Memcheck, a memory error detector
==3455694== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==3455694== Using Valgrind-3.16.1 and LibVEX; rerun with -h for copyright info
==3455694== Command: zuluCrypt-cli -O -t tcrypt -d /dev/sdg1
==3455694== 
Enter passphrase: ==3455694== Invalid write of size 1
==3455694==    at 0x48D859B: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee8f is 31 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 1
==3455694==    at 0x48D85A6: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee90 is 0 bytes after a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 

==3455694== Invalid read of size 1
==3455694==    at 0x4B2146E: ??? (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x4B22868: ??? (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x4B06B0A: crypt_load (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x48D2C03: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D2E27: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D5582: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D5F34: zuluCryptResolveDevicePath_0 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48CFABB: zuluCryptOpenVolume_0 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48CFE28: zuluCryptOpenVolume_2 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A777E: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee70 is 0 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid read of size 1
==3455694==    at 0x4B2147F: ??? (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x4B22868: ??? (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x4B06B0A: crypt_load (in /usr/lib64/libcryptsetup.so.12.6.0)
==3455694==    by 0x48D2C03: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D2E27: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D5582: ??? (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D5F34: zuluCryptResolveDevicePath_0 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48CFABB: zuluCryptOpenVolume_0 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48CFE28: zuluCryptOpenVolume_2 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A777E: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee72 is 2 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
SUCCESS: tcrypt volume opened successfully
==3455694== Invalid write of size 8
==3455694==    at 0x484141D: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48A9A2C: zuluCryptSecurityUnlockMemory (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A65CF: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee70 is 0 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x4841427: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48A9A2C: zuluCryptSecurityUnlockMemory (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A65CF: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee78 is 8 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x484142B: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48A9A2C: zuluCryptSecurityUnlockMemory (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A65CF: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee80 is 16 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x484142F: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48A9A2C: zuluCryptSecurityUnlockMemory (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A65CF: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee88 is 24 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 1
==3455694==    at 0x4841498: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48A9A2C: zuluCryptSecurityUnlockMemory (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A65CF: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee90 is 0 bytes after a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x484141D: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48DC256: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee70 is 0 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x4841427: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48DC256: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee78 is 8 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x484142B: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48DC256: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee80 is 16 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x484142F: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48DC256: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee88 is 24 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid write of size 8
==3455694==    at 0x4841424: memset (vg_replace_strmem.c:1251)
==3455694==    by 0x48DC256: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee90 is 0 bytes after a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== Invalid free() / delete / delete[] / realloc()
==3455694==    at 0x483B9F5: free (vg_replace_malloc.c:538)
==3455694==    by 0x48DC25F: StringListClearDelete (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A65D9: ??? (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x48A730D: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Address 0x541ee70 is 0 bytes inside a block of size 32 free'd
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694==  Block was alloc'd at
==3455694==    at 0x483A809: malloc (vg_replace_malloc.c:307)
==3455694==    by 0x48D69D9: String (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D9558: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== 
==3455694== HEAP SUMMARY:
==3455694==     in use at exit: 64 bytes in 1 blocks
==3455694==   total heap usage: 5,252 allocs, 5,252 frees, 21,235,862 bytes allocated
==3455694== 
==3455694== 64 bytes in 1 blocks are definitely lost in loss record 1 of 1
==3455694==    at 0x483CCE8: realloc (vg_replace_malloc.c:834)
==3455694==    by 0x48D858E: StringAppendChar (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D958F: StringGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48D97BD: StringSilentlyGetFromTerminal_1 (in /usr/lib64/libzuluCrypt.so.1.2.0)
==3455694==    by 0x48A77CC: zuluCryptEXEOpenVolume (in /usr/lib64/libzuluCrypt-exe.so.1.2.0)
==3455694==    by 0x10B544: main (in /usr/bin/zuluCrypt-cli)
==3455694== 
==3455694== LEAK SUMMARY:
==3455694==    definitely lost: 64 bytes in 1 blocks
==3455694==    indirectly lost: 0 bytes in 0 blocks
==3455694==      possibly lost: 0 bytes in 0 blocks
==3455694==    still reachable: 0 bytes in 0 blocks
==3455694==         suppressed: 0 bytes in 0 blocks
==3455694== 
==3455694== For lists of detected and suppressed errors, rerun with: -s
==3455694== ERROR SUMMARY: 52 errors from 16 contexts (suppressed: 0 from 0)

(and note, when running it through valgrind, it works fine, I guess because valgrind "captures" the bad calls)

mhogomchungu commented 3 years ago
  1. Do you still get the same error if you use a wrong password?

  2. Run the command again from root's account and enter the password as an argument like below

    zuluCrypt-cli -O -t tcrypt -d /dev/sdg1 -p $PASSWORD
  3. What do you get when you run the following command from root's command? Do you still get the error?

This below command unlocks the volume and mounts the file system.

zuluCrypt-cli -o -t tcrypt -d /dev/sdg1
rocketraman commented 3 years ago
  1. Do you still get the same error if you use a wrong password?

No.

# zuluCrypt-cli -O -t tcrypt -d /dev/sdg1
Enter passphrase: 
ERROR: Volume could not be opened with the presented key
  1. Run the command again from root's account and enter the password as an argument like below
zuluCrypt-cli -O -t tcrypt -d /dev/sdg1 -p $PASSWORD

Worked.

# zuluCrypt-cli -O -t tcrypt -d /dev/sdg1 -p "$PASSWORD"
SUCCESS: tcrypt volume opened successfully
  1. What do you get when you run the following command from root's command? Do you still get the error?

This below command unlocks the volume and mounts the file system.

zuluCrypt-cli -o -t tcrypt -d /dev/sdg1

Similar (though not the same) problem:

# zuluCrypt-cli -o -t tcrypt -d /dev/sdg1
Enter passphrase: 
ERROR: Volume could not be opened with the presented key
free(): invalid next size (fast)
Aborted (core dumped)
mhogomchungu commented 3 years ago

I can not reproduce it in my main system running PCLinuxOS and in Arch Linux but those result show there is a problem somewhere between how zuluCrypt reads passwords from stdin and TrueCrypt functionality.

Will install Fedora 32 within a day or two and see if i can reproduce it there.

mhogomchungu commented 3 years ago

I can not reproduce it with Fedora 32 running in VirtualBox

Screenshot_20201024_095547

rocketraman commented 3 years ago

Hmm is there any other information I can provide that may help figure out what the difference in our boxes is? Perhaps an ldd?

mhogomchungu commented 3 years ago

Are you using SELinux?

What terminal program are you using?

Did you configure your system to enhance its security in some way?

rocketraman commented 3 years ago

Are you using SELinux?

Yes, in enforcing mode. However, there are no audit entries / alerts related to running the crashing command.

What terminal program are you using?

Konsole. I've also tried it in xterm, as well as in a straight console via a Ctrl-Alt-F2. Always a crash.

Did you configure your system to enhance its security in some way?

No. Using the stock Fedora kernel, with no security-related command line arguments.

BOOT_IMAGE=(hd0,gpt2)/vmlinuz-5.8.10-200.fc32.x86_64 root=/dev/mapper/vg_ssd-lv_root ro root=/dev/mapper/vg_ssd-lv_root ro quiet rhgb SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=us biosdevname=1 pcie_aspm=off radeon.audio=0 amdgpu.dc=0 usbcore.autosuspend=-1 nmi_watchdog=0
rocketraman commented 3 years ago

Still having this issue, now on kernel 5.9.14-100.fc32.x86_64. Any ideas?

mhogomchungu commented 2 years ago

How long is your password? I think the problem is now solved and it was cause by a password that was longer than 32 characters long.

rocketraman commented 2 years ago

@mhogomchungu Yes, my password is longer than that.

rocketraman commented 2 years ago

Still have the issue with this version:

# zuluCrypt-cli --version
Version  : 6.0.0
Copyright: 2011-2021 Francis Banyikwa,mhogomchungu@gmail.com
License  : GPLv2+

@mhogomchungu Do you know which version this should be fixed in?

mhogomchungu commented 2 years ago

The fix currently exists in the git version only and you have to choices if you want to test it.

  1. Build zuluCrypt from source.
  2. Use binary packages i provide and you can get them from here[1]. There are currently no version for fedora 35 because it does not build i have not investigated the issue.

[1] https://download.opensuse.org/repositories/home:/obs_mhogomchungu/