Mercurial > vim
view runtime/vimlogo.eps @ 34309:d7cfd8fb1d75 v9.1.0089
patch 9.1.0089: qsort() comparison functions should be transitive
Commit: https://github.com/vim/vim/commit/e06e43766500ecb4cd1031fa16cf9cbebdb222c1
Author: Christian Brabandt <cb@256bit.org>
Date: Fri Feb 9 19:39:14 2024 +0100
patch 9.1.0089: qsort() comparison functions should be transitive
Problem: qsort() comparison functions should be transitive
Solution: Do not subtract values, but rather use explicit comparisons
Improve qsort() comparison functions
There has been a recent report on qsort() causing out-of-bounds read &
write in glibc for non transitive comparison functions
https://www.qualys.com/2024/01/30/qsort.txt
Even so the bug is in glibc's implementation of the qsort() algorithm,
it's bad style to just use substraction for the comparison functions,
which may cause overflow issues and as hinted at in OpenBSD's manual
page for qsort(): "It is almost always an error to use subtraction to
compute the return value of the comparison function."
So check the qsort() comparison functions and change them to be safe.
closes: #13980
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Fri, 09 Feb 2024 19:45:06 +0100 |
parents | 9521463d4fc1 |
children |
line wrap: on
line source
%!PS-Adobe-3.0 EPSF-3.0 %%For: %%Title: %%Creator: Scribus1.4.2 %%Pages: 1 %%BoundingBox: 0 0 282 282 %%HiResBoundingBox: 0 0 282 282 %%LanguageLevel: 3 %%EndComments %%BeginProlog /Scribusdict 100 dict def Scribusdict begin /sp {showpage} bind def /oldsetgray /setgray load def /cmyk {setcmykcolor} def /m {moveto} bind def /l {lineto} bind def /li {lineto} bind def /cu {curveto} bind def /cl {closepath} bind def /gs {gsave} bind def /gr {grestore} bind def /tr {translate} bind def /ro {rotate} bind def /sh {show} bind def /shg {setcmykcolor moveto glyphshow} def /shgsp {moveto glyphshow} def /sc {scale} bind def /se {selectfont} bind def /sf {setfont} bind def /sw {setlinewidth} bind def /f {findfont} bind def /fi {fill} bind def /st {stroke} bind def /shgf {gs dup scale begin cvx exec fill end gr} bind def /shgs {gs dup 1 exch div currentlinewidth mul sw dup scale begin cvx exec st end gr} bind def /bEPS { /b4_Inc_state save def /dict_count countdictstack def /op_count count 1 sub def userdict begin /showpage { } def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [ ] 0 setdash newpath /languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint } if } if } bind def /eEPS { count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_Inc_state restore } bind def end %%EndProlog %%BeginSetup %%EndSetup %%Page: 1 1 %%PageOrientation: Portrait Scribusdict begin save /DeviceCMYK setcolorspace 0 0 tr 0 0 m 282 0 li 282 282 li 0 282 li cl clip newpath gs 0.708406 281.428 m 281.58 281.428 li 281.58 0.556 li 0.708406 0.556 li 0.708406 281.428 li cl eoclip newpath gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 0.816406 281.32 tr 280.656 -138.888 m 138.888 0 li 0 -141.696 li 138.888 -280.656 li 280.656 -138.888 li cl 0 0 0 1 cmyk eofill 280.656 -138.888 m 138.888 0 li 0 -141.696 li 138.888 -280.656 li 280.656 -138.888 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 139.704 142.432 tr 127.584 0 m 136.08 0 li 0 -136.08 li 0 -127.584 li 127.584 0 li cl 0.6 0 0.4 0.580392 cmyk eofill 127.584 0 m 136.08 0 li 0 -136.08 li 0 -127.584 li 127.584 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 6.50391 139.624 tr 0 0 m 8.49609 0 li 133.2 -124.776 li 133.2 -133.272 li 0 0 li cl 0.6 0 0.4 0.509804 cmyk eofill 0 0 m 8.49609 0 li 133.2 -124.776 li 133.2 -133.272 li 0 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 6.50391 275.632 tr 133.2 -8.42384 m 133.2 0 li 0 -136.008 li 8.49609 -136.008 li 133.2 -8.42384 li cl 0.6 0 0.4 0 cmyk eofill 133.2 -8.42384 m 133.2 0 li 0 -136.008 li 8.49609 -136.008 li 133.2 -8.42384 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 139.704 275.632 tr 0 0 m 0 -8.42384 li 127.584 -133.2 li 136.08 -133.2 li 0 0 li cl 0.729412 0 0.988235 0 cmyk eofill 0 0 m 0 -8.42384 li 127.584 -133.2 li 136.08 -133.2 li 0 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 15 267.208 tr 124.704 -252.36 m 252.288 -124.776 li 124.704 0 li 0 -127.584 li 124.704 -252.36 li cl 0.6 0 0.4 0.4 cmyk eofill 124.704 -252.36 m 252.288 -124.776 li 124.704 0 li 0 -127.584 li 124.704 -252.36 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 18.8164 270.016 tr 147.384 -31.1758 m 155.88 -39.7431 li 97.2716 -99.2156 li 97.2716 -39.7431 li 102.96 -39.7431 li 111.456 -31.1758 li 111.456 -8.5674 li 102.96 0 li 8.4951 0 li 0 -8.5674 li 0 -31.1758 li 8.4951 -39.7431 li 15.1191 -39.7431 li 15.1191 -232.488 li 25.4873 -240.984 li 54.792 -240.984 li 257.904 -31.1758 li 257.904 -8.5674 li 249.408 0 li 156.816 0 li 147.384 -8.5674 li 147.384 -31.1758 li cl 0 0 0 1 cmyk eofill 147.384 -31.1758 m 155.88 -39.7431 li 97.2716 -99.2156 li 97.2716 -39.7431 li 102.96 -39.7431 li 111.456 -31.1758 li 111.456 -8.5674 li 102.96 0 li 8.4951 0 li 0 -8.5674 li 0 -31.1758 li 8.4951 -39.7431 li 15.1191 -39.7431 li 15.1191 -232.488 li 25.4873 -240.984 li 54.792 -240.984 li 257.904 -31.1758 li 257.904 -8.5674 li 249.408 0 li 156.816 0 li 147.384 -8.5674 li 147.384 -31.1758 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 24.4316 264.4 tr 5.6885 -28.4404 m 0 -22.752 li 0 -5.7608 li 5.6885 -0.0723 li 94.5364 0 li 100.152 -5.7608 li 94.5364 -8.4961 li 91.6564 -5.7608 li 5.6885 -19.8721 li 5.6885 -28.4404 li cl 0 0 0 0 cmyk eofill 5.6885 -28.4404 m 0 -22.752 li 0 -5.7608 li 5.6885 -0.0723 li 94.5364 0 li 100.152 -5.7608 li 94.5364 -8.4961 li 91.6564 -5.7608 li 5.6885 -19.8721 li 5.6885 -28.4404 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 40.4883 241.648 tr 6.624 -206.928 m 0 -201.24 li 0 -5.6162 li 6.624 0 li 6.624 -206.928 li cl 0 0 0 0 cmyk eofill 6.624 -206.928 m 0 -201.24 li 0 -5.6162 li 6.624 0 li 6.624 -206.928 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 100.032 241.648 tr 88.848 -5.6884 m 94.536 0 li 94.536 -11.3759 li 0 -107.712 li 10.44 -85.0324 li 88.848 -5.6884 li cl 0 0 0 0 cmyk eofill 88.848 -5.6884 m 94.536 0 li 94.536 -11.3759 li 0 -107.712 li 10.44 -85.0324 li 88.848 -5.6884 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 30.1201 247.336 tr 18.9356 -2.8798 m 16.9922 -5.6875 li 10.3682 -11.3759 li 0 -11.3759 li 0 0 li 18.9356 -2.8798 li cl 0 0 0 0.501961 cmyk eofill 18.9356 -2.8798 m 16.9922 -5.6875 li 10.3682 -11.3759 li 0 -11.3759 li 0 0 li 18.9356 -2.8798 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 100.032 258.64 tr 10.44 -22.6796 m 10.44 -102.024 li 0 -124.632 li 0 -16.9199 li 16.056 -16.9199 li 18.936 -14.1113 li 16.056 0 li 24.552 0 li 24.552 -16.9912 li 18.936 -22.6796 li 10.44 -22.6796 li cl 0 0 0 0.501961 cmyk eofill 10.44 -22.6796 m 10.44 -102.024 li 0 -124.632 li 0 -16.9199 li 16.056 -16.9199 li 18.936 -14.1113 li 16.056 0 li 24.552 0 li 24.552 -16.9912 li 18.936 -22.6796 li 10.44 -22.6796 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 171.888 264.328 tr 5.616 -28.3681 m 0 -22.6797 li 0 -5.6885 li 6.552 0 li 92.592 0 li 99.216 -5.6885 li 89.712 -14.1845 li 5.616 -19.7998 li 5.616 -28.3681 li cl 0 0 0 0 cmyk eofill 5.616 -28.3681 m 0 -22.6797 li 0 -5.6885 li 6.552 0 li 92.592 0 li 99.216 -5.6885 li 89.712 -14.1845 li 5.616 -19.7998 li 5.616 -28.3681 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 47.1123 258.64 tr 223.992 -16.9912 m 24.5518 -223.92 li 0 -223.92 li 0 -215.424 li 18 -215.424 li 217.368 -11.3037 li 214.488 0 li 223.992 0 li 223.992 -16.9912 li cl 0 0 0 0.501961 cmyk eofill 223.992 -16.9912 m 24.5518 -223.92 li 0 -223.92 li 0 -215.424 li 18 -215.424 li 217.368 -11.3037 li 214.488 0 li 223.992 0 li 223.992 -16.9912 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 177.504 247.336 tr 18.936 -2.8798 m 16.992 -5.6875 li 11.376 -11.3759 li 0 -11.3759 li 0 0 li 18.936 -2.8798 li cl 0 0 0 0.501961 cmyk eofill 18.936 -2.8798 m 16.992 -5.6875 li 11.376 -11.3759 li 0 -11.3759 li 0 0 li 18.936 -2.8798 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 30.1201 258.712 tr 69.9119 -124.704 m 69.9119 -16.9922 li 85.9679 -16.9922 li 88.8479 -14.1836 li 88.8479 -2.8076 li 85.9679 0 li 2.8076 0 li 0 -2.8076 li 0 -14.1836 li 2.8076 -16.9922 li 16.9922 -16.9922 li 16.9922 -215.496 li 20.6641 -218.304 li 36.8643 -218.304 li 235.296 -11.376 li 235.296 -3.2402 li 232.416 0 li 150.264 0 li 147.384 -2.8076 li 147.384 -14.2558 li 150.264 -17.0635 li 164.448 -17.0635 li 164.448 -28.4394 li 69.9119 -124.704 li cl 0 0 0 0.2 cmyk eofill 69.9119 -124.704 m 69.9119 -16.9922 li 85.9679 -16.9922 li 88.8479 -14.1836 li 88.8479 -2.8076 li 85.9679 0 li 2.8076 0 li 0 -2.8076 li 0 -14.1836 li 2.8076 -16.9922 li 16.9922 -16.9922 li 16.9922 -215.496 li 20.6641 -218.304 li 36.8643 -218.304 li 235.296 -11.376 li 235.296 -3.2402 li 232.416 0 li 150.264 0 li 147.384 -2.8076 li 147.384 -14.2558 li 150.264 -17.0635 li 164.448 -17.0635 li 164.448 -28.4394 li 69.9119 -124.704 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 145.896 139.552 tr 5.688 -5.688 m 12.312 0 li 29.304 0 li 34.056 -5.688 li 28.368 -22.68 li 21.816 -28.368 li 4.824 -28.368 li 0 -22.68 li 5.688 -5.688 li cl 0 0 0 1 cmyk eofill 5.688 -5.688 m 12.312 0 li 29.304 0 li 34.056 -5.688 li 28.368 -22.68 li 21.816 -28.368 li 4.824 -28.368 li 0 -22.68 li 5.688 -5.688 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 157.272 108.376 tr 0 -68.04 m 17.064 -17.064 li 11.376 -17.064 li 17.064 0 li 42.48 0 li 48.168 -5.688 li 51.984 -5.688 li 57.6 0 li 76.536 0 li 82.224 -5.688 li 85.968 -5.688 li 91.656 0 li 112.392 0 li 119.952 -11.376 li 107.568 -51.696 li 113.184 -51.696 li 107.712 -68.04 li 73.656 -68.04 li 86.976 -28.368 li 78.48 -28.368 li 70.632 -51.552 li 76.248 -51.552 li 70.92 -68.04 li 36.864 -68.04 li 50.112 -28.368 li 41.616 -28.368 li 33.696 -51.696 li 39.384 -51.696 li 34.056 -68.04 li 0 -68.04 li cl 0 0 0 1 cmyk eofill 0 -68.04 m 17.064 -17.064 li 11.376 -17.064 li 17.064 0 li 42.48 0 li 48.168 -5.688 li 51.984 -5.688 li 57.6 0 li 76.536 0 li 82.224 -5.688 li 85.968 -5.688 li 91.656 0 li 112.392 0 li 119.952 -11.376 li 107.568 -51.696 li 113.184 -51.696 li 107.712 -68.04 li 73.656 -68.04 li 86.976 -28.368 li 78.48 -28.368 li 70.632 -51.552 li 76.248 -51.552 li 70.92 -68.04 li 36.864 -68.04 li 50.112 -28.368 li 41.616 -28.368 li 33.696 -51.696 li 39.384 -51.696 li 34.056 -68.04 li 0 -68.04 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 164.832 102.688 tr 102.24 0 m 106.632 -6.264 li 92.664 -51.048 li 98.28 -51.048 li 96.408 -56.664 li 73.728 -56.664 li 86.976 -16.992 li 67.104 -16.992 li 55.8 -51.048 li 61.416 -51.048 li 59.544 -56.664 li 36.864 -56.664 li 50.112 -16.992 li 30.24 -16.992 li 18.936 -51.048 li 24.624 -51.048 li 22.68 -56.664 li 0 -56.664 li 17.064 -5.688 li 11.376 -5.688 li 13.248 0 li 34.056 0 li 39.744 -5.688 li 45.36 -5.688 li 51.048 0 li 68.04 0 li 73.728 -5.688 li 79.416 -5.688 li 85.104 0 li 102.24 0 li cl 0 0 0 0.2 cmyk eofill 102.24 0 m 106.632 -6.264 li 92.664 -51.048 li 98.28 -51.048 li 96.408 -56.664 li 73.728 -56.664 li 86.976 -16.992 li 67.104 -16.992 li 55.8 -51.048 li 61.416 -51.048 li 59.544 -56.664 li 36.864 -56.664 li 50.112 -16.992 li 30.24 -16.992 li 18.936 -51.048 li 24.624 -51.048 li 22.68 -56.664 li 0 -56.664 li 17.064 -5.688 li 11.376 -5.688 li 13.248 0 li 34.056 0 li 39.744 -5.688 li 45.36 -5.688 li 51.048 0 li 68.04 0 li 73.728 -5.688 li 79.416 -5.688 li 85.104 0 li 102.24 0 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 120.408 108.376 tr 51.048 0 m 33.696 -51.624 li 39.6 -51.624 li 33.984 -68.04 li 0 -68.04 li 16.992 -17.064 li 11.304 -17.064 li 51.048 0 li cl 11.304 -17.064 m 16.992 0 li 51.048 0 li 11.304 -17.064 li cl 0 0 0 1 cmyk eofill 51.048 0 m 33.696 -51.624 li 39.6 -51.624 li 33.984 -68.04 li 0 -68.04 li 16.992 -17.064 li 11.304 -17.064 li 51.048 0 li cl 11.304 -17.064 m 16.992 0 li 51.048 0 li 11.304 -17.064 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 127.968 102.688 tr 22.68 -56.664 m 24.552 -51.048 li 18.864 -51.048 li 35.928 0 li 12.312 0 li 10.368 -5.688 li 16.992 -5.688 li 0 -56.664 li 22.68 -56.664 li cl 0 0 0 0.2 cmyk eofill 22.68 -56.664 m 24.552 -51.048 li 18.864 -51.048 li 35.928 0 li 12.312 0 li 10.368 -5.688 li 16.992 -5.688 li 0 -56.664 li 22.68 -56.664 li cl 0 0 0 1 cmyk st gr gs 0.216 sw 0 setlinecap 0 setlinejoin [] 0 setdash 152.52 133.864 tr 16.992 -14.184 m 20.808 -2.808 li 18.936 0 li 7.56 0 li 3.816 -2.808 li 0 -14.184 li 1.944 -16.992 li 13.32 -16.992 li 16.992 -14.184 li cl 0 0 0 0.2 cmyk eofill 16.992 -14.184 m 20.808 -2.808 li 18.936 0 li 7.56 0 li 3.816 -2.808 li 0 -14.184 li 1.944 -16.992 li 13.32 -16.992 li 16.992 -14.184 li cl 0 0 0 1 cmyk st gr gr %%PageTrailer restore gs gr sp end %%Trailer %%EOF