view .hgtags @ 1613:96aa7ec74936 draft

Fix yet another sed bug. The s/// command would copy the \ of substitutions before deciding what to do with them (generally overwriting the \ with the new data). When the substitution was A) at the very end of the new string, B) resolved to nothing, it could leave a trailing \ that didn't belong there and didn't get overwritten because the "copy trailing data" part that copies the original string's null terminator already happened before the \ overwrote it. The ghostwheel() function restarts regexes after embedded NUL bytes, but if the string it's passed is _longer_ than the length it's told then it gets confused (and it means we're off the end of our allocation so segfaults are likely). Fix: test for \ first and move the "copy byte" logic into an else case.
author Rob Landley <>
date Mon, 15 Dec 2014 03:34:55 -0600
parents 7a0ea74c2e0c
children 4a68c2b7787c
line wrap: on
line source

8f8a8ac59c14ffa0428092b4c2714e12065f3492 0.0.1
d2e38cb0b1cd8da4fcbd976c3e598ec110528ce6 0.0.2
a459c6b396454b56eddb5a426c6e0231a41d1de8 0.0.3
104792581cc929a38aee401840cfddaed88f7da1 0.0.4
09ecbdf58c874d073184427b241ed3908976e771 0.0.5
6e65eefc37e999b378d1eca271bf93011e5f5a25 0.0.6
db86f4df58b9ba8bf3b9b5a22c7500de77caee14 0.0.7
86e2bdb2ad669058a4a34248914165a8055367b5 0.0.8
e708e8933a50733c1b520391acd4fb7612ead441 0.2.0
9bcc288a1c5498eca9d8468c477e747ace046a6f 0.2.1
d8566c3321f0a192211e25b077bed484974931d8 0.3.0
8bee9c27c21917907e5b1b7a191461704b3b13a4 0.3.1
85fc06bd63c4b2576af6778b21f8d65d807d7d4c 0.4.0
8871e80028126eec13772f343df02d5fc447a543 0.4.1
8947c0d35e585013640bac885a01d2c63b0a1b19 0.4.2
f8f5ddb6b69a98137e2b65516f34d8a60363b96e 0.4.3
52e69f6710cafae7eb5343cd7c3eeee4eac1a5a1 0.4.4
62ba5ce62e9d870623a024c6d702f89ba57d1e64 0.4.5
7ada6da9540aa3f3ebfc222d43653e87e5f91a29 0.4.6
663242f2962c83446cfcb70c393cfd28ac314e7a 0.4.7
8556669d3928316ebb141e945a0abb824859c19a 0.4.8
ffc015bddb26e2d3cf06c9bf0bf1d61177fab8fd 0.4.9
7afd32673a5c22668bbd24d77e57b03bdd3f7bba 0.5.0