[BUG] misaligned-pointer-use memtodest() src/expand.c:964:17
Aleksander Ushakov <[email protected]> Fri, 16 Jan 2026 21:44:26 +0300
| Newsgroups | org.kernel.vger.dash |
|---|---|
| Message-ID | <CADdNFavLY8Y38ToK97iPJye8xqUtr4kbNkzbN=PdoTuwTJoZOQ@mail.gmail.com> |
Dear Dash maintainers,
I encountered a bug in Dash in commit f8aaaa (Also the behaviour repeats on
0.5.13 version of Dash) and would like to report
it. The details are provided below.
expand.c:964:17: runtime error: load of misaligned address 0x608e5f3d3fa3
for type 'uint64_t' (aka 'unsigned long'), which requires 8 byte alignment
0x608e5f3d3fa3: note: pointer points here
00 20 00 04 64 61 73 68 2d 74 74 74 00 00 00 00 00 41 87 34 02 00 00 00
00 19 00 00 00 00 00 00
^
#0 0x608e45209c1b in memtodest
/upstream/z/dash-0.5.13/src/expand.c:964:17
#1 0x608e4520f17e in expmeta /upstream/z/dash-0.5.13/src/expand.c:1737:4
#2 0x608e452052b9 in expandmeta
/upstream/z/dash-0.5.13/src/expand.c:1562:3
#3 0x608e452027b2 in expandarg
/upstream/z/dash-0.5.13/src/expand.c:246:3
#4 0x608e451fafdd in fill_arglist
/upstream/z/dash-0.5.13/src/eval.c:680:3
#5 0x608e451f4e81 in evalcommand
/upstream/z/dash-0.5.13/src/eval.c:788:13
#6 0x608e451f407c in evaltree /upstream/z/dash-0.5.13/src/eval.c:305:12
#7 0x608e452201ac in cmdloop /upstream/z/dash-0.5.13/src/main.c:247:8
#8 0x608e4521fe6e in main /upstream/z/dash-0.5.13/src/main.c:181:3
#9 0x7566db7b9249 in __libc_start_call_main
csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#10 0x7566db7b9304 in __libc_start_main csu/../csu/libc-start.c:360:3
#11 0x608e451c2930 in _start (/upstream/z/dash-0.5.13/src/dash+0x42930)
(BuildId: f5787a810ed7cf088639c548c8ff13ea66dcb3e3)
SUMMARY: UndefinedBehaviorSanitizer: misaligned-pointer-use expand.c:964:17
Aborted (core dumped)
////////////////
My environment:
////////////////
Debian-12, x86-64, clang-19 compiler
/////////////////
Steps to reproduce:
/////////////////
$ aclocal && autoheader && automake --add-missing && autoconf
$ CC=clang CFLAGS=" -Wno-everything -fsanitize=undefined -g -O0"
./configure --disable-fnmatch --disable-lineno --disable-glob
$ make
$ cd src
$ ./dash < myfile.txt
//////////////////
Steps to get myfile.txt:
//////////////////
copy the text into file bs64.txt (between ==== and ======):
=====================================================================================
Y2QgLwpwd2QKaGVscCA+Ji0KcHdkCnB3ZAplY2hvIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv
ZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgICBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOLWRHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieQojICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBv
ZiB0aGUgTGljZW5zZSwgb3IKIyAgIChhdCB5b3VyIG9wIGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CiMKIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAojICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3QHRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlAAB0aGUKI2QtMQphCmVuZC0yCmE6eAplbmQtYQpi
OngKZW5kLWIKYzp4CmVuZC1jCmVuZC0zCmE6eAplbmQEYQpiCmMKZW5kLTEKYQpiCmMKZW5kLTIK
YTp4CmE6eQphOnoKZW5kLWEKYjp4CmI6eQpiOnoKZW5kLWIKYzp4CmM6eQpjOnoKZW5kLWMKZW5k
LTMKYTp4Cnd4MTAwOF09LGc9cngsbz1yeAowMDAyCnU9cnd4Yjp4CmM6eAplb2QKJEJWQVIKJEJW
QVIKJEJWQVIKJEJWQVIKZm9vCmJhcgp4eHgKMDAyMgp1PXJ3eDEwMDhdPSxnPXJ4LG89cngKMDAw
Mgp1PXJ3eCxnPXJ3eCxvJHJ4CnVtYXNrIDc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
NwA3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
NzdtbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t
bW1tbW1tbTc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3
Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzcgJ1slc11cbicgZm9vICRACnByaW50ZiAnWyVzXVxuJyBm
b28gIiRAIgpwcmluAAAAQGZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmICdbJXNdXG4nIGZvbyAn
JyRACnByaW50ZiAnWyVzXVxuJyBmb28gJyciJEAiCnByaW50ZiAnWyU=
=====================================================================================
Then do the action: base64 -d bs64.txt > myfile.txt
Or just take from attachments
att.txt.txt
(text/plain, 2 KB) - not displayed