https://sourceware.org/bugzilla/show_bug.cgi?id=25244
Bug ID: 25244 Summary: --print-memory-usage, division by zero if MEMORY length is zero Product: binutils Version: 2.34 (HEAD) Status: UNCONFIRMED Severity: enhancement Priority: P2 Component: ld Assignee: unassigned at sourceware dot org Reporter: pexu at sourceware dot mail.kapsi.fi Target Milestone: --- Hi. lang_print_memory_usage() at ld/ldlang.c calculates and displays the memory region usage as follows: 9282 percent = used_length * 100.0 / r->length; 9284 printf (" %6.2f%%\n", percent); If the memory region length is zero (denoted by r->length), this will cause division by zero. Likely no other harm is done, except not all printf implementations adhere to e.g. IEEE 1003.1 (POSIX specifications), causing some implementation specific format to be shown when a NaN is passed (or -NaN, given that the floating point implementation behaves as such). E.g. MinGW targets (as they use MS Visual C library) display `[-]1.#J' (`[-]1#IND' truncated to %6.2f). This might cause issues if a tool that uses the output data does not except this kind of behaviour (wouldn't call this undefined by any means). -- You are receiving this mail because: You are on the CC list for the bug.