https://bugs.kde.org/show_bug.cgi?id=386945
--- Comment #24 from Mark Wielaard <m...@klomp.org> --- Created attachment 115701 --> https://bugs.kde.org/attachment.cgi?id=115701&action=edit Small ppc64le binary with inlined string functions Here is an example with some inlined string functions on Fedora 28 ppc64le: $ cat foo.c #include <string.h> #include <stdio.h> __attribute__ ((weak)) void do_test (const char *left, const char *right) { printf ("result: %d\n", strcmp (left, right)); } int main (void) { do_test (strdup ("a"), strdup ("b")); } $ gcc --version | head -1 gcc (GCC) 8.1.1 20180712 (Red Hat 8.1.1-5) $ gcc -O2 -g -o foo foo.c $ valgrind -q ./foo 2>&1 | head -30 ==10495== Invalid read of size 4 ==10495== at 0x10000790: do_test (foo.c:7) ==10495== by 0x10000587: main (foo.c:13) ==10495== Address 0x4310044 is 2 bytes after a block of size 2 alloc'd ==10495== at 0x4093F6C: malloc (vg_replace_malloc.c:299) ==10495== by 0x4196F63: strdup (in /usr/lib64/libc-2.27.so) ==10495== by 0x10000563: main (foo.c:13) ==10495== ==10495== Invalid read of size 4 ==10495== at 0x10000794: do_test (foo.c:7) ==10495== by 0x10000587: main (foo.c:13) ==10495== Address 0x4310094 is 2 bytes after a block of size 2 alloc'd ==10495== at 0x4093F6C: malloc (vg_replace_malloc.c:299) ==10495== by 0x4196F63: strdup (in /usr/lib64/libc-2.27.so) ==10495== by 0x10000577: main (foo.c:13) ==10495== ==10495== Conditional jump or move depends on uninitialised value(s) ==10495== at 0x1000079C: do_test (foo.c:7) ==10495== by 0x10000587: main (foo.c:13) ==10495== ==10495== Conditional jump or move depends on uninitialised value(s) ==10495== at 0x4156044: vfprintf@@GLIBC_2.17 (in /usr/lib64/libc-2.27.so) ==10495== by 0x415DED7: printf@@GLIBC_2.17 (in /usr/lib64/libc-2.27.so) ==10495== by 0x100007D7: do_test (foo.c:7) ==10495== by 0x10000587: main (foo.c:13) ==10495== ==10495== Use of uninitialised value of size 8 ==10495== at 0x41522E8: _itoa_word (in /usr/lib64/libc-2.27.so) ==10495== by 0x41568B7: vfprintf@@GLIBC_2.17 (in /usr/lib64/libc-2.27.so) ==10495== by 0x100007D7: do_test (foo.c:7) objdump -d of do_test (): 0000000010000730 <do_test>: 10000730: 02 10 40 3c lis r2,4098 10000734: 00 7f 42 38 addi r2,r2,32512 10000738: a6 02 08 7c mflr r0 1000073c: 20 05 69 78 clrldi r9,r3,52 10000740: c0 0f a9 2f cmpdi cr7,r9,4032 10000744: 10 00 01 f8 std r0,16(r1) 10000748: a1 ff 21 f8 stdu r1,-96(r1) 1000074c: 10 00 9c 40 bge cr7,1000075c <do_test+0x2c> 10000750: 20 05 89 78 clrldi r9,r4,52 10000754: c0 0f a9 2f cmpdi cr7,r9,4032 10000758: 38 00 9c 41 blt cr7,10000790 <do_test+0x60> 1000075c: a5 fd ff 4b bl 10000500 <00000039.plt_call.strcmp@@GLIBC_2.17> 10000760: 18 00 41 e8 ld r2,24(r1) 10000764: b4 07 64 7c extsw r4,r3 10000768: fe ff 62 3c addis r3,r2,-2 1000076c: 98 8b 63 38 addi r3,r3,-29800 10000770: 51 fd ff 4b bl 100004c0 <00000039.plt_call.printf@@GLIBC_2.17> 10000774: 18 00 41 e8 ld r2,24(r1) 10000778: 60 00 21 38 addi r1,r1,96 1000077c: 10 00 01 e8 ld r0,16(r1) 10000780: a6 03 08 7c mtlr r0 10000784: 20 00 80 4e blr 10000788: 00 00 00 60 nop 1000078c: 00 00 42 60 ori r2,r2,0 10000790: 28 1c 40 7d ldbrx r10,0,r3 10000794: 28 24 00 7d ldbrx r8,0,r4 10000798: 51 50 28 7d subf. r9,r8,r10 1000079c: 54 00 82 41 beq 100007f0 <do_test+0xc0> 100007a0: 00 00 20 39 li r9,0 100007a4: f8 43 43 7d cmpb r3,r10,r8 100007a8: f8 4b 49 7d cmpb r9,r10,r9 100007ac: 38 1b 23 7d orc r3,r9,r3 100007b0: 74 00 63 7c cntlzd r3,r3 100007b4: 08 00 63 38 addi r3,r3,8 100007b8: 30 1e 4a 79 rldcl r10,r10,r3,56 100007bc: 30 1e 03 79 rldcl r3,r8,r3,56 100007c0: 50 50 23 7d subf r9,r3,r10 100007c4: 78 4b 23 7d mr r3,r9 100007c8: b4 07 64 7c extsw r4,r3 100007cc: fe ff 62 3c addis r3,r2,-2 100007d0: 98 8b 63 38 addi r3,r3,-29800 100007d4: ed fc ff 4b bl 100004c0 <00000039.plt_call.printf@@GLIBC_2.17> 100007d8: 18 00 41 e8 ld r2,24(r1) 100007dc: 60 00 21 38 addi r1,r1,96 100007e0: 10 00 01 e8 ld r0,16(r1) 100007e4: a6 03 08 7c mtlr r0 100007e8: 20 00 80 4e blr 100007ec: 00 00 42 60 ori r2,r2,0 100007f0: f8 4b 4a 7d cmpb r10,r10,r9 100007f4: 00 00 aa 2f cmpdi cr7,r10,0 100007f8: cc ff 9e 40 bne cr7,100007c4 <do_test+0x94> 100007fc: 08 00 23 39 addi r9,r3,8 10000800: 28 4c 40 7d ldbrx r10,0,r9 10000804: 08 00 24 39 addi r9,r4,8 10000808: 28 4c 00 7d ldbrx r8,0,r9 1000080c: 51 50 28 7d subf. r9,r8,r10 10000810: 90 ff 82 40 bne 100007a0 <do_test+0x70> 10000814: f8 4b 4a 7d cmpb r10,r10,r9 10000818: 00 00 aa 2f cmpdi cr7,r10,0 1000081c: a8 ff 9e 40 bne cr7,100007c4 <do_test+0x94> 10000820: 10 00 23 39 addi r9,r3,16 10000824: 28 4c 40 7d ldbrx r10,0,r9 10000828: 10 00 24 39 addi r9,r4,16 1000082c: 28 4c 00 7d ldbrx r8,0,r9 10000830: 51 50 28 7d subf. r9,r8,r10 10000834: 6c ff 82 40 bne 100007a0 <do_test+0x70> 10000838: f8 4b 4a 7d cmpb r10,r10,r9 1000083c: 00 00 aa 2f cmpdi cr7,r10,0 10000840: 84 ff 9e 40 bne cr7,100007c4 <do_test+0x94> 10000844: 18 00 23 39 addi r9,r3,24 10000848: 28 4c 40 7d ldbrx r10,0,r9 1000084c: 18 00 24 39 addi r9,r4,24 10000850: 28 4c 00 7d ldbrx r8,0,r9 10000854: 51 50 28 7d subf. r9,r8,r10 10000858: 48 ff 82 40 bne 100007a0 <do_test+0x70> 1000085c: f8 4b 4a 7d cmpb r10,r10,r9 10000860: 00 00 aa 2f cmpdi cr7,r10,0 10000864: 60 ff 9e 40 bne cr7,100007c4 <do_test+0x94> 10000868: 20 00 23 39 addi r9,r3,32 1000086c: 28 4c 40 7d ldbrx r10,0,r9 10000870: 20 00 24 39 addi r9,r4,32 10000874: 28 4c 00 7d ldbrx r8,0,r9 10000878: 51 50 28 7d subf. r9,r8,r10 1000087c: 24 ff 82 40 bne 100007a0 <do_test+0x70> 10000880: f8 4b 4a 7d cmpb r10,r10,r9 10000884: 00 00 aa 2f cmpdi cr7,r10,0 10000888: 3c ff 9e 40 bne cr7,100007c4 <do_test+0x94> 1000088c: 28 00 23 39 addi r9,r3,40 10000890: 28 4c 40 7d ldbrx r10,0,r9 10000894: 28 00 24 39 addi r9,r4,40 10000898: 28 4c 00 7d ldbrx r8,0,r9 1000089c: 51 50 28 7d subf. r9,r8,r10 100008a0: 00 ff 82 40 bne 100007a0 <do_test+0x70> 100008a4: f8 4b 4a 7d cmpb r10,r10,r9 100008a8: 00 00 aa 2f cmpdi cr7,r10,0 100008ac: 18 ff 9e 40 bne cr7,100007c4 <do_test+0x94> 100008b0: 30 00 23 39 addi r9,r3,48 100008b4: 28 4c 40 7d ldbrx r10,0,r9 100008b8: 30 00 24 39 addi r9,r4,48 100008bc: 28 4c 00 7d ldbrx r8,0,r9 100008c0: 51 50 28 7d subf. r9,r8,r10 100008c4: dc fe 82 40 bne 100007a0 <do_test+0x70> 100008c8: f8 4b 4a 7d cmpb r10,r10,r9 100008cc: 00 00 aa 2f cmpdi cr7,r10,0 100008d0: f4 fe 9e 40 bne cr7,100007c4 <do_test+0x94> 100008d4: 38 00 23 39 addi r9,r3,56 100008d8: 28 4c 40 7d ldbrx r10,0,r9 100008dc: 38 00 24 39 addi r9,r4,56 100008e0: 28 4c 00 7d ldbrx r8,0,r9 100008e4: 51 50 28 7d subf. r9,r8,r10 100008e8: b8 fe 82 40 bne 100007a0 <do_test+0x70> 100008ec: f8 4b 4a 7d cmpb r10,r10,r9 100008f0: 00 00 aa 2f cmpdi cr7,r10,0 100008f4: d0 fe 9e 40 bne cr7,100007c4 <do_test+0x94> 100008f8: 40 00 84 38 addi r4,r4,64 100008fc: 40 00 63 38 addi r3,r3,64 10000900: 5c fe ff 4b b 1000075c <do_test+0x2c> 10000904: 00 00 00 00 .long 0x0 10000908: 00 00 00 01 .long 0x1000000 1000090c: 80 00 00 00 .long 0x80 -- You are receiving this mail because: You are watching all bug changes.