blob: 9b70c8c86edfe4fe8a8132385e6abb785bff99b2 [file] [log] [blame]
xf.li6c8fc1e2023-08-12 00:11:09 -07001curl and libcurl 7.86.0
2
3 Public curl releases: 211
4 Command line options: 248
5 curl_easy_setopt() options: 300
6 Public functions in libcurl: 91
7 Contributors: 2733
8
9This release includes the following changes:
10
11 o NPN: remove support for and use of [16]
12 o Websockets: initial support [23]
13
14This release includes the following bugfixes:
15
16 o altsvc: reject bad port numbers [86]
17 o altsvc: use 'h3' for h3 [46]
18 o amiga: do not hardcode openssl/zlib into the os config [158]
19 o amiga: set SIZEOF_CURL_OFF_T=8 by default [150]
20 o amigaos: add missing curl header [159]
21 o asyn-ares: set hint flags when calling ares_getaddrinfo [93]
22 o autotools: allow --enable-symbol-hiding with windows [65]
23 o autotools: allow unix sockets on Windows [144]
24 o autotools: reduce brute-force when detecting recv/send arg list [66]
25 o aws_sigv4: fix header computation [139]
26 o bearssl: make it proper C89 compliant
27 o CI/GHA: cancel outdated CI runs on new PR changes [20]
28 o CI/GHA: merge msh3 and openssl3 builds into linux workflow [110]
29 o cirrus-ci: add macOS build with m1 [81]
30 o cirrus: use make LDFLAGS=-all-static instead of curl_LDFLAGS [129]
31 o cli tool: do not use disabled protocols
32 o cmake: add missing inet_ntop check [145]
33 o cmake: add the check of HAVE_SOCKETPAIR [98]
34 o cmake: define BUILDING_LIBCURL in lib/CMakeLists, not config.h [5]
35 o cmake: delete duplicate HAVE_GETADDRINFO test [149]
36 o cmake: enable more detection on Windows [143]
37 o cmake: fix original MinGW builds [177]
38 o cmake: improve usability of CMake build as a sub-project [186]
39 o cmake: set HAVE_GETADDRINFO_THREADSAFE on Windows [147]
40 o cmake: set HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID on Windows [146]
41 o cmake: sync HAVE_SIGNAL detection with autotools [148]
42 o cmdline/docs: add a required 'multi' keyword for each option [160]
43 o configure: correct the wording when checking grep -E [13]
44 o configure: deprecate builds with small curl_off_t [89]
45 o configure: fail if '--without-ssl' + explicit parameter for an ssl lib [164]
46 o configure: the ngtcp2 option should default to 'no' [125]
47 o connect: change verbose IPv6 address:port to [address]:port [83]
48 o connect: fix builds without AF_INET6 [152]
49 o connect: fix Curl_updateconninfo for TRNSPRT_UNIX [108]
50 o connect: fix the wrong error message on connect failures [55]
51 o content_encoding: use writer struct subclasses for different encodings [8]
52 o cookie: reject cookie names or content with TAB characters [94]
53 o ctype: remove all use of <ctype.h>, use our own versions [12]
54 o curl-compilers.m4: for gcc + want warnings, set gnu89 standard [72]
55 o curl-compilers.m4: use -O2 as default optimize for clang [6]
56 o curl-wolfssl.m4: error out if wolfSSL is not usable [102]
57 o curl.h: fix mention of wrong error code in comment
58 o curl/add_file_name_to_url: use the libcurl URL parser [99]
59 o curl/add_parallel_transfers: better error handling [101]
60 o curl/get_url_file_name: use libcurl URL parser [97]
61 o curl: warn for --ssl use, considered insecure [49]
62 o curl_ctype: convert to macros-only [10]
63 o curl_easy_pause.3: unpausing is as fast as possible [14]
64 o curl_escape.3: fix typo [50]
65 o curl_setup: disable use of FLOSS for 64-bit NonStop builds [69]
66 o curl_setup: include curl.h after platform setup headers [37]
67 o curl_setup: include only system.h instead of curl.h [34]
68 o curl_strequal.3: fix argument typo [60]
69 o curl_url_set.3: document CURLU_APPENDQUERY proper [96]
70 o CURLMOPT_PIPELINING.3: dedup manpage xref [111]
71 o CURLOPT_ACCEPT_ENCODING.3: remove "four" as they are five [85]
72 o CURLOPT_AUTOREFERER.3: highlight the privacy leak risk [161]
73 o CURLOPT_COOKIEFILE: insist on "" for enable-without-file [119]
74 o CURLOPT_COOKIELIST.3: fix formatting mistake [80]
75 o CURLOPT_DNS_INTERFACE.3: mention it works for almost all protocols [15]
76 o CURLOPT_MIMEPOST.3: add an (inline) example [126]
77 o CURLOPT_POSTFIELDS.3: refer to CURLOPT_MIMEPOST [167]
78 o CURLOPT_PROXY_SSLCERT_BLOB.3: this is for HTTPS proxies [9]
79 o CURLOPT_WILDCARDMATCH.3: Fix backslash escaping under single quotes [172]
80 o CURLSHOPT_UNLOCKFUNC.3: the callback has no 'access' argument [84]
81 o DEPRECATE.md: Support for systems without 64 bit data types [19]
82 o docs/examples: avoid deprecated options in examples where possible [115]
83 o docs/INSTALL: update Android Instructions for newer NDKs [151]
84 o docs/libcurl/symbols-in-versions: add several missing symbols
85 o docs: 100+ spellfixes
86 o docs: correct missing uppercase in Markdown files [38]
87 o docs: document more server names for test files
88 o docs: fix deprecation versions inconsistencies [123]
89 o docs: make sure libcurl opts examples pass in long arguments [182]
90 o docs: remove mentions of deprecated '--without-openssl' parameter [170]
91 o docs: tag curl options better in man pages
92 o docs: tell about disabled protocols in CURLOPT_*PROTOCOLS_STR.
93 o docs: update sourceforge project links [95]
94 o easy: fix the #include order [53]
95 o easy: fix the altsvc init for curl_easy_duphandle [77]
96 o easy_lock: check for HAVE_STDATOMIC_H as well [187]
97 o examples/chkspeed: improve portability [48]
98 o formdata: fix warning: 'CURLformoption' is promoted to 'int' [24]
99 o ftp: ignore a 550 response to MDTM [1]
100 o ftp: remove redundant if [163]
101 o functypes: provide the recv and send arg and return types [87]
102 o getparameter: return PARAM_MANUAL_REQUESTED for -M even when disabled [17]
103 o GHA: build tests in a separate step from the running of them [78]
104 o GHA: run proselint on markdown files [22]
105 o github: initial CODEOWNERS setup for CI configuration [52]
106 o header: define public API functions as extern c [26]
107 o headers: reset the requests counter at transfer start [25]
108 o hostip: guard PF_INET6 use [157]
109 o hostip: lazily wait to figure out if IPv6 works until needed [36]
110 o http, vauth: always provide Curl_allow_auth_to_host() functionality [90]
111 o http2: make nghttp2 less picky about field whitespace [27]
112 o HTTP3.md: update Caddy example [76]
113 o http: try parsing Retry-After: as a number first [122]
114 o http_proxy: restore the protocol pointer on error [104]
115 o httpput-postfields.c: shorten string for C89 compliance [57]
116 o ldap: delete stray CURL_HAS_MOZILLA_LDAP reference [79]
117 o lib1560: extended to verify detect/reject of unknown schemes
118 o lib517: fix C89 constant signedness [73]
119 o lib: add missing limits.h includes [35]
120 o lib: add required Win32 setup definitions in setup-win32.h [4]
121 o lib: prepare the incoming of additional protocols [71]
122 o lib: sanitize conditional exclusion around MIME [82]
123 o lib: set more flags in config-win32.h [109]
124 o lib: the number four in a sequence is the "fourth" [28]
125 o libssh: if sftp_init fails, don't get the sftp error code [132]
126 o Makefile.m32: deduplicate build rules [131]
127 o Makefile.m32: drop CROSSPREFIX and our CC/AR defaults [137]
128 o Makefile.m32: exclude libs & libpaths for shared mode exes [127]
129 o Makefile.m32: fix regression with tool_hugehelp [130]
130 o Makefile.m32: major rework [92]
131 o Makefile.m32: reintroduce CROSSPREFIX and -W -Wall [179]
132 o Makefile.m32: support more options [142]
133 o manpage-syntax.pl: all libcurl option symbols should be \fI-tagged [75]
134 o manpages: Fix spelling of "allows to" -> "allows one to" [171]
135 o misc: ISSPACE() => ISBLANK() [11]
136 o misc: use the term "null-terminate" consistently [41]
137 o mprintf: reject two kinds of precision for the same argument [162]
138 o mprintf: use snprintf if available [74]
139 o mqtt: return error for too long topic [133]
140 o mqtt: spell out CONNECT in comments [166]
141 o msh3: change the static_assert to make the code C89
142 o netrc: compare user name case sensitively [118]
143 o netrc: replace fgets with Curl_get_line [174]
144 o netrc: use the URL-decoded user [103]
145 o ngtcp2: fix build errors due to changes in ngtcp2 library [107]
146 o ngtcp2: fix C89 compliance nit
147 o noproxy: support proxies specified using cidr notation [184]
148 o openssl: make certinfo available for QUIC [91]
149 o README.md: add GHA status badges for Linux and macOS builds [40]
150 o RELEASE-PROCEDURE.md: mention patch releases [21]
151 o resolve: make forced IPv4 resolve only use A queries [61]
152 o runtests: fix uninitialized value on ignored tests [128]
153 o schannel: ban server ALPN change during recv renegotiation [63]
154 o schannel: don't reset recv/send function pointers on renegotiation [156]
155 o schannel: when importing PFX, disable key persistence [141]
156 o scripts: use `grep -E` instead of `egrep` [30]
157 o setopt: use the handler table for protocol name to number conversions [45]
158 o setopt: when POST is set, reset the 'upload' field [51]
159 o setup-win32: no longer define UNICODE/_UNICODE implicitly [3]
160 o single_transfer: use the libcurl URL parser when appending query parts [100]
161 o smb: replace CURL_WIN32 with WIN32 [138]
162 o strcase: add and use Curl_timestrcmp [106]
163 o strerror: improve two URL API error messages
164 o symbol-scan.pl: also check for LIBCURL* symbols [43]
165 o symbol-scan.pl: scan and verify .3 man pages [42]
166 o symbols-in-versions: add missing LIBCURL* symbols
167 o symbols-in-versions: CURLOPT_ENCODING is deprecated since 7.21.6
168 o test1119: scan all public headers [44]
169 o test1275: verify uppercase after period in markdown [135]
170 o test972: verify the output without using external tool [32]
171 o tests/certs/scripts: insert standard curl source headers [169]
172 o tests/Makefile: remove run time stats from ci-test [120]
173 o tests: avoid CreateThread if _beginthreadex is available [155]
174 o tests: fix tag syntax errors in test files
175 o tests: skip mime/form tests when mime is not built-in [54]
176 o tidy-up: delete parallel/unused feature flags [117]
177 o tidy-up: delete unused HAVE_STRUCT_POLLFD [134]
178 o TODO: provide the error body from a CONNECT response [67]
179 o tool: avoid generating ambiguous escaped characters in --libcurl [124]
180 o tool: remove dead code [70]
181 o tool: reorganize function c_escape around a dynbuf [121]
182 o tool_hugehelp: make hugehelp a blank macro when disabled [7]
183 o tool_main: exit at once if out of file descriptors [113]
184 o tool_operate: avoid a few #ifdefs for disabled-libcurl builds [29]
185 o tool_operate: more transfer cleanup after parallel transfer fail [165]
186 o tool_operate: prevent over-queuing in parallel mode [176]
187 o tool_operate: reduce errorbuffer allocs [173]
188 o tool_paramhelp: asserts verify maximum sizes for string loading [112]
189 o tool_paramhelp: make the max argument a 'double' [136]
190 o tool_progress: remove 'Qd' from the parallel progress bar [175]
191 o tool_setopt: use better English in --libcurl source comments [39]
192 o tool_xattr: save the original URL, not the final redirected one [181]
193 o unit test 1655: make it C89-compliant [59]
194 o url: a zero-length userinfo part in the URL is still a (blank) user [64]
195 o url: allow non-HTTPS HSTS-matching for debug builds [105]
196 o url: rename function due to name-clash in Watt-32 [62]
197 o url: use IDN decoded names for HSTS checks [140]
198 o urlapi: detect scheme better when not guessing [56]
199 o urlapi: fix parsing URL without slash with CURLU_URLENCODE [154]
200 o urlapi: leaner with fewer allocs [2]
201 o urlapi: reject more bad characters from the host name field [88]
202 o winbuild/MakefileBuild.vc: handle spaces in libssh(2) include paths [18]
203 o winbuild: use NMake batch-rules for compilation [47]
204 o windows: add .rc support to autotools builds [33]
205 o windows: adjust name of two internal public functions [58]
206 o windows: autotools .rc warnings fixup [68]
207 o wolfSSL: fix session management bug. [31]
208
209This release includes the following known bugs:
210
211 o see docs/KNOWN_BUGS (https://curl.se/docs/knownbugs.html)
212
213Planned upcoming removals include:
214
215 o NSS
216 o Support for systems without 64 bit data types
217
218 See https://curl.se/dev/deprecate.html for details
219
220This release would not have looked like this without help, code, reports and
221advice from friends like these:
222
223 12932 on github, a1346054 on github, Aftab Alam, ajak in #curl,
224 Andrew Lambert, Benjamin Loison, Brad Harder, bsergean on github,
225 Christopher Sauer, Dan Fandrich, Daniel Gustafsson, Daniel Hallberg,
226 Daniel Stenberg, David Hu, David McLaughlin, Dmitry Karpov, Dominik Klemba,
227 Don J Olmstead, Dustin Howett, Edoardo Lolletti, Eloy Degen, Emanuele Torre,
228 Emilio López, Gisle Vanem, Hayden Roche, Hiroki Kurosawa, James Fuller,
229 Jeremy Maitin-Shepard, Joel Depooter, John Bampton, Jonas Haag,
230 jurisuk on github, justchen1369 on github, Keitagit-kun on github,
231 Kelly Kaoudis, Marcel Raad, Marc Hörsken, Mark Itzcovitz, Martin Ågren,
232 Martin Strunz, Mathieu Carbonneaux, Matthias Gatto, Matt Holt, Max Dymond,
233 Michael Drake, Michael Heimpold, n0name321 on github, Orgad Shaneh,
234 Patrick Monnerat, Paul Seligman, Peter Goodman, Petr Å tetiar, Philip H,
235 Philip H., Philip Heiduck, ProceduralMan on github, Randall S. Becker,
236 Ray Satiro, Rickard Hallerbäck, RobBotic1 on github, Robby Simpson,
237 Samuel Henrique, Sergey Bronnikov, ShadowZzj on github, Shaun Mirani,
238 ssdbest on github, Thiago Suchorski, Tobias Schaefer, Trail of Bits,
239 Vasiliy Ulyanov, Viktor Szakats, Xiang Xiao, Yuriy Chernyshov,
240 zhanghu on xiaomi
241 (74 contributors)
242
243References to bug reports and discussions on issues:
244
245 [1] = https://curl.se/bug/?i=9357
246 [2] = https://curl.se/bug/?i=9408
247 [3] = https://curl.se/bug/?i=9375
248 [4] = https://curl.se/bug/?i=9375
249 [5] = https://curl.se/bug/?i=9498
250 [6] = https://curl.se/bug/?i=9444
251 [7] = https://curl.se/bug/?i=9485
252 [8] = https://curl.se/bug/?i=9455
253 [9] = https://curl.se/bug/?i=9434
254 [10] = https://curl.se/bug/?i=9429
255 [11] = https://curl.se/bug/?i=9432
256 [12] = https://curl.se/bug/?i=9433
257 [13] = https://curl.se/bug/?i=9471
258 [14] = https://curl.se/bug/?i=9410
259 [15] = https://curl.se/bug/?i=9427
260 [16] = https://curl.se/bug/?i=9307
261 [17] = https://curl.se/bug/?i=9485
262 [18] = https://curl.se/mail/lib-2022-09/0038.html
263 [19] = https://curl.se/bug/?i=9604
264 [20] = https://curl.se/bug/?i=9533
265 [21] = https://curl.se/bug/?i=9495
266 [22] = https://curl.se/bug/?i=9520
267 [23] = https://curl.se/bug/?i=8995
268 [24] = https://curl.se/bug/?i=9484
269 [25] = https://curl.se/bug/?i=9424
270 [26] = https://curl.se/bug/?i=9424
271 [27] = https://curl.se/bug/?i=9448
272 [28] = https://curl.se/bug/?i=9535
273 [29] = https://curl.se/bug/?i=9486
274 [30] = https://curl.se/bug/?i=9491
275 [31] = https://curl.se/bug/?i=9492
276 [32] = https://curl.se/bug/?i=9563
277 [33] = https://curl.se/bug/?i=9521
278 [34] = https://curl.se/bug/?i=9453
279 [35] = https://curl.se/bug/?i=9453
280 [36] = https://curl.se/bug/?i=9553
281 [37] = https://curl.se/bug/?i=9453
282 [38] = https://curl.se/bug/?i=9474
283 [39] = https://curl.se/bug/?i=9475
284 [40] = https://curl.se/bug/?i=9530
285 [41] = https://curl.se/bug/?i=9527
286 [42] = https://curl.se/bug/?i=9544
287 [43] = https://curl.se/bug/?i=9544
288 [44] = https://curl.se/bug/?i=9544
289 [45] = https://curl.se/bug/?i=9472
290 [46] = https://curl.se/bug/?i=9515
291 [47] = https://curl.se/bug/?i=9512
292 [48] = https://curl.se/bug/?i=9562
293 [49] = https://curl.se/bug/?i=9519
294 [50] = https://curl.se/bug/?i=9517
295 [51] = https://curl.se/bug/?i=9507
296 [52] = https://curl.se/bug/?i=9505
297 [53] = https://curl.se/bug/?i=9560
298 [54] = https://curl.se/bug/?i=9596
299 [55] = https://curl.se/bug/?i=9549
300 [56] = https://curl.se/bug/?i=9503
301 [57] = https://curl.se/bug/?i=9555
302 [58] = https://curl.se/bug/?i=9598
303 [59] = https://curl.se/bug/?i=9551
304 [60] = https://curl.se/bug/?i=9548
305 [61] = https://curl.se/bug/?i=9540
306 [62] = https://curl.se/bug/?i=9585
307 [63] = https://curl.se/bug/?i=9463
308 [64] = https://curl.se/bug/?i=9088
309 [65] = https://curl.se/bug/?i=9586
310 [66] = https://curl.se/bug/?i=9591
311 [67] = https://curl.se/bug/?i=9513
312 [68] = https://curl.se/bug/?i=9582
313 [69] = https://curl.se/bug/?i=9575
314 [70] = https://curl.se/bug/?i=9576
315 [71] = https://curl.se/bug/?i=9534
316 [72] = https://curl.se/bug/?i=9542
317 [73] = https://curl.se/bug/?i=9572
318 [74] = https://curl.se/bug/?i=9569
319 [75] = https://curl.se/bug/?i=9574
320 [76] = https://curl.se/bug/?i=9623
321 [77] = https://curl.se/bug/?i=9624
322 [78] = https://curl.se/bug/?i=9619
323 [79] = https://curl.se/bug/?i=9625
324 [80] = https://curl.se/bug/?i=9639
325 [81] = https://curl.se/bug/?i=9565
326 [82] = https://curl.se/bug/?i=9610
327 [83] = https://curl.se/mail/archive-2022-02/0041.html
328 [84] = https://curl.se/bug/?i=9612
329 [85] = https://curl.se/bug/?i=9614
330 [86] = https://curl.se/bug/?i=9607
331 [87] = https://curl.se/bug/?i=9592
332 [88] = https://curl.se/bug/?i=9608
333 [89] = https://curl.se/bug/?i=9605
334 [90] = https://curl.se/bug/?i=9600
335 [91] = https://curl.se/bug/?i=9584
336 [92] = https://curl.se/bug/?i=9632
337 [93] = https://curl.se/bug/?i=9694
338 [94] = https://curl.se/bug/?i=9659
339 [95] = https://curl.se/bug/?i=9630
340 [96] = https://curl.se/bug/?i=9628
341 [97] = https://curl.se/bug/?i=9684
342 [98] = https://curl.se/bug/?i=9686
343 [99] = https://curl.se/bug/?i=9683
344 [100] = https://curl.se/bug/?i=9681
345 [101] = https://curl.se/bug/?i=9729
346 [102] = https://curl.se/bug/?i=9682
347 [103] = https://curl.se/bug/?i=9709
348 [104] = https://curl.se/bug/?i=9790
349 [105] = https://curl.se/bug/?i=9728
350 [106] = https://curl.se/bug/?i=9658
351 [107] = https://curl.se/bug/?i=9747
352 [108] = https://curl.se/bug/?i=9664
353 [109] = https://curl.se/bug/?i=9712
354 [110] = https://curl.se/bug/?i=9646
355 [111] = https://curl.se/bug/?i=9776
356 [112] = https://curl.se/bug/?i=9719
357 [113] = https://curl.se/bug/?i=9663
358 [115] = https://curl.se/bug/?i=9661
359 [117] = https://curl.se/bug/?i=9652
360 [118] = https://curl.se/bug/?i=9657
361 [119] = https://curl.se/bug/?i=9654
362 [120] = https://curl.se/bug/?i=9656
363 [121] = https://curl.se/bug/?i=9653
364 [122] = https://curl.se/bug/?i=9718
365 [123] = https://curl.se/bug/?i=9711
366 [124] = https://curl.se/bug/?i=9643
367 [125] = https://curl.se/mail/lib-2022-10/0007.html
368 [126] = https://curl.se/bug/?i=9637
369 [127] = https://curl.se/bug/?i=9651
370 [128] = https://curl.se/bug/?i=9648
371 [129] = https://curl.se/bug/?i=9633
372 [130] = https://curl.se/bug/?i=9645
373 [131] = https://curl.se/bug/?i=9642
374 [132] = https://curl.se/bug/?i=9737
375 [133] = https://curl.se/bug/?i=9744
376 [134] = https://curl.se/bug/?i=9707
377 [135] = https://curl.se/bug/?i=9697
378 [136] = https://curl.se/bug/?i=9700
379 [137] = https://curl.se/bug/?i=9698
380 [138] = https://curl.se/bug/?i=9701
381 [139] = https://curl.se/bug/?i=7966
382 [140] = https://curl.se/bug/?i=9791
383 [141] = https://curl.se/bug/?i=9300
384 [142] = https://curl.se/bug/?i=9680
385 [143] = https://curl.se/bug/?i=9687
386 [144] = https://github.com/curl/curl-for-win/blob/73a070d96fd906fdee929e2f1f00a9149fb39239/curl-autotools.sh#L44-L47
387 [145] = https://curl.se/bug/?i=9689
388 [146] = https://curl.se/bug/?i=9726
389 [147] = https://curl.se/bug/?i=9727
390 [148] = https://curl.se/bug/?i=9725
391 [149] = https://curl.se/bug/?i=9731
392 [150] = https://curl.se/bug/?i=9771
393 [151] = https://curl.se/bug/?i=9732
394 [152] = https://curl.se/bug/?i=9770
395 [154] = https://curl.se/bug/?i=9763
396 [155] = https://curl.se/bug/?i=9705
397 [156] = https://curl.se/bug/?i=9451
398 [157] = https://curl.se/bug/?i=9760
399 [158] = https://curl.se/bug/?i=9762
400 [159] = https://curl.se/bug/?i=9761
401 [160] = https://curl.se/bug/?i=9759
402 [161] = https://curl.se/bug/?i=9757
403 [162] = https://curl.se/bug/?i=9754
404 [163] = https://curl.se/bug/?i=9753
405 [164] = https://curl.se/bug/?i=9414
406 [165] = https://curl.se/bug/?i=9749
407 [166] = https://curl.se/bug/?i=9751
408 [167] = https://curl.se/bug/?i=9752
409 [169] = https://curl.se/bug/?i=9417
410 [170] = https://curl.se/bug/?i=9415
411 [171] = https://curl.se/bug/?i=9419
412 [172] = https://curl.se/bug/?i=9418
413 [173] = https://curl.se/bug/?i=9394
414 [174] = https://curl.se/bug/?i=9789
415 [175] = https://curl.se/bug/?i=9389
416 [176] = https://curl.se/bug/?i=8933
417 [177] = https://curl.se/bug/?i=9214
418 [179] = https://curl.se/bug/?i=9784
419 [181] = https://curl.se/bug/?i=9766
420 [182] = https://curl.se/bug/?i=9779
421 [184] = https://curl.se/bug/?i=9773
422 [186] = https://curl.se/bug/?i=9638
423 [187] = https://curl.se/bug/?i=9755