[bug] make: two unsigned integer overflows in src/implicit.c
CHEN LINGFENG <[email protected]> Thu, 12 Mar 2026 10:16:02 +0000
| Newsgroups | gmane.comp.gnu.make.bugs |
|---|---|
| Message-ID | <OS9P301MB1253A1125F65DCCDC4B1D452D844A@OS9P301MB1253.JPNP301.PROD.OUTLOOK.COM> |
--_000_OS9P301MB1253A1125F65DCCDC4B1D452D844AOS9P301MB1253JPNP_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hello, I would like to report two sanitizer-detected violations in GNU make 4.4.1. I built make with sanitizers enabled using: CC=3Dclang CFLAGS=3D"-O1 -g -fno-omit-frame-pointer -fsanitize=3Daddress,undefined,int= eger,bounds" LDFLAGS=3D"-fsanitize=3Daddress,undefined,integer,bounds" Observed results: /root/build/make-4.4.1/src/implicit.c:192:40: runtime error: unsigned integ= er overflow: 0 - 1 cannot be represented in type 'unsigned int' #0 0x52e09a in stemlen_compare /root/build/make-4.4.1/src/implicit.c:192:40 #1 0x47d3c9 in qsort (/work/build/make-4.4.1/obj-gcov2/make+0x47d3c9) #2 0x52193a in pattern_search /root/build/make-4.4.1/src/implicit.c:431:5 #3 0x51eef0 in try_implicit_rule /root/build/make-4.4.1/src/implicit.c:48:7 #4 0x5a1cd6 in update_file_1 /root/build/make-4.4.1/src/remake.c:557:7 #5 0x5972ca in update_file /root/build/make-4.4.1/src/remake.c:367:13 #6 0x595874 in update_goal_chain /root/build/make-4.4.1/src/remake.c:184:22 #7 0x551742 in main /root/build/make-4.4.1/src/main.c:2448:18 #8 0x79bd73f2fc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/.= ./csu/libc-start.c:310 #9 0x420f19 in _start (/work/build/make-4.4.1/obj-gcov2/make+0x420f19) /root/build/make-4.4.1/src/implicit.c:191:30: runtime error: unsigned integ= er overflow: 1 - 3 cannot be represented in type 'unsigned long' #0 0x52df3b in stemlen_compare /root/build/make-4.4.1/src/implicit.c:191:30 #1 0x47d3c9 in qsort (/work/build/make-4.4.1/obj-gcov2/make+0x47d3c9) #2 0x52193a in pattern_search /root/build/make-4.4.1/src/implicit.c:431:5 #3 0x528206 in pattern_search /root/build/make-4.4.1/src/implicit.c:896:27 #4 0x51eef0 in try_implicit_rule /root/build/make-4.4.1/src/implicit.c:48:7 #5 0x5a1cd6 in update_file_1 /root/build/make-4.4.1/src/remake.c:557:7 #6 0x5972ca in update_file /root/build/make-4.4.1/src/remake.c:367:13 #7 0x595874 in update_goal_chain /root/build/make-4.4.1/src/remake.c:184:22 #8 0x551742 in main /root/build/make-4.4.1/src/main.c:2448:18 #9 0x79bd73f2fc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/.= ./csu/libc-start.c:310 #10 0x420f19 in _start (/work/build/make-4.4.1/obj-gcov2/make+0x420f19) Best regards, Lingfeng Chen <https://aka.ms/GetOutlookForMac> --_000_OS9P301MB1253A1125F65DCCDC4B1D452D844AOS9P301MB1253JPNP_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"= > </head> <body> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> Hello,</div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> I would like to report two sanitizer-detected violations in GNU make 4.4.1.= </div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> I built make with sanitizers enabled using:</div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> CC=3Dclang</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> CFLAGS=3D"-O1 -g -fno-omit-frame-pointer -fsanitize=3Daddress,undefine= d,integer,bounds"</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> LDFLAGS=3D"-fsanitize=3Daddress,undefined,integer,bounds"</div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> Observed results:</div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> /root/build/make-4.4.1/src/implicit.c:192:40: runtime error: unsigned integ= er overflow: 0 - 1 cannot be represented in type 'unsigned int'</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #0 0x52e09a in stemlen_compare /root/build/make-4.4.1/src/implicit.c:192:40= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #1 0x47d3c9 in qsort (/work/build/make-4.4.1/obj-gcov2/make+0x47d3c9)</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #2 0x52193a in pattern_search /root/build/make-4.4.1/src/implicit.c:431:5</= div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #3 0x51eef0 in try_implicit_rule /root/build/make-4.4.1/src/implicit.c:48:7= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #4 0x5a1cd6 in update_file_1 /root/build/make-4.4.1/src/remake.c:557:7</div= > <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #5 0x5972ca in update_file /root/build/make-4.4.1/src/remake.c:367:13</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #6 0x595874 in update_goal_chain /root/build/make-4.4.1/src/remake.c:184:22= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #7 0x551742 in main /root/build/make-4.4.1/src/main.c:2448:18</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #8 0x79bd73f2fc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/.= ./csu/libc-start.c:310</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #9 0x420f19 in _start (/work/build/make-4.4.1/obj-gcov2/make+0x420f19)</div= > <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> /root/build/make-4.4.1/src/implicit.c:191:30: runtime error: unsigned integ= er overflow: 1 - 3 cannot be represented in type 'unsigned long'</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #0 0x52df3b in stemlen_compare /root/build/make-4.4.1/src/implicit.c:191:30= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #1 0x47d3c9 in qsort (/work/build/make-4.4.1/obj-gcov2/make+0x47d3c9)</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #2 0x52193a in pattern_search /root/build/make-4.4.1/src/implicit.c:431:5</= div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #3 0x528206 in pattern_search /root/build/make-4.4.1/src/implicit.c:896:27<= /div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #4 0x51eef0 in try_implicit_rule /root/build/make-4.4.1/src/implicit.c:48:7= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #5 0x5a1cd6 in update_file_1 /root/build/make-4.4.1/src/remake.c:557:7</div= > <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #6 0x5972ca in update_file /root/build/make-4.4.1/src/remake.c:367:13</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #7 0x595874 in update_goal_chain /root/build/make-4.4.1/src/remake.c:184:22= </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #8 0x551742 in main /root/build/make-4.4.1/src/main.c:2448:18</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #9 0x79bd73f2fc86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/.= ./csu/libc-start.c:310</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> #10 0x420f19 in _start (/work/build/make-4.4.1/obj-gcov2/make+0x420f19)</di= v> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"direction: ltr; font-family: Aptos, Arial, Helvetica, sans-se= rif; font-size: 12pt; color: rgb(0, 0, 0);"> <br> </div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> Best regards,</div> <div style=3D"font-family: Aptos, Arial, Helvetica, sans-serif; font-size: = 12pt; color: rgb(0, 0, 0);"> Lingfeng Chen<a href=3D"https://aka.ms/GetOutlookForMac" data-outlook-id=3D= "7d72d990-691d-48df-96fe-95f2cba7cef6" style=3D"margin-top: 0px; margin-bot= tom: 0px;"> </a></div> </body> </html> --_000_OS9P301MB1253A1125F65DCCDC4B1D452D844AOS9P301MB1253JPNP_--