From: andrey dot bukatov at gmail dot com Operating system: Ubuntu PHP version: 5.4.19 Package: Regexps related Bug Type: Bug Bug description:preg_split cause segmentation fault
Description: ------------ This code cause segmentation fault in PHP Version 5.4.19 Test script: --------------- <?php $input = ' /** * @RequestParam(name="ticket", description="ÐÑаÑÐ¸Ð½Ñ Ð Ð¾ÑÑова Ñ Ð´Ð¾ÑеÑÑми и Ñже Ñ Ð±Ð¾Ð»ÑÑим ÑиÑлом гоÑÑей Ñидела в гоÑÑиной. ÐÑÐ°Ñ Ð¿Ñовел гоÑÑей-мÑжÑин в кабинеÑ, пÑÐµÐ´Ð»Ð°Ð³Ð°Ñ Ð¸Ð¼ ÑÐ²Ð¾Ñ Ð¾Ñ Ð¾ÑниÑкÑÑ ÐºÐ¾Ð»Ð»ÐµÐºÑÐ¸Ñ ÑÑÑеÑÐºÐ¸Ñ ÑÑÑбок. ÐзÑедка он вÑÑ Ð¾Ð´Ð¸Ð» и ÑпÑаÑивал: не пÑÐ¸ÐµÑ Ð°Ð»Ð° ли? Ðдали ÐаÑÑÑ ÐмиÑÑÐ¸ÐµÐ²Ð½Ñ ÐÑ ÑоÑимовÑ, пÑозваннÑÑ Ð² обÑеÑÑве le terrible dragon 1, Ð´Ð°Ð¼Ñ Ð·Ð½Ð°Ð¼ÐµÐ½Ð¸ÑÑÑ Ð½Ðµ богаÑÑÑвом, не поÑеÑÑÑми, но пÑÑмоÑой Ñма и оÑкÑÐ¾Ð²ÐµÐ½Ð½Ð¾Ñ Ð¿ÑоÑÑоÑой обÑаÑениÑ. ÐаÑÑÑ ÐмиÑÑÐ¸ÐµÐ²Ð½Ñ Ð·Ð½Ð°Ð»Ð° ÑаÑÑÐºÐ°Ñ ÑамилиÑ, знала вÑÑ ÐоÑква и веÑÑ ÐеÑеÑбÑÑг, и оба гоÑода, ÑдивлÑÑÑÑ ÐµÐ¹, вÑÐ¸Ñ Ð¾Ð¼Ð¾Ð»ÐºÑ Ð¿Ð¾ÑмеивалиÑÑ Ð½Ð°Ð´ ее гÑÑбоÑÑÑÑ, ÑаÑÑказÑвали пÑо нее анекдоÑÑ; Ñем не менее вÑе без иÑклÑÑÐµÐ½Ð¸Ñ Ñважали и боÑлиÑÑ ÐµÐµ. РкабинеÑе, полном дÑма, Ñел ÑÐ°Ð·Ð³Ð¾Ð²Ð¾Ñ Ð¾ войне, коÑоÑÐ°Ñ Ð±Ñла обÑÑвлена маниÑеÑÑом, о набоÑе. ÐаниÑеÑÑа еÑе никÑо не ÑиÑал, но вÑе знали о его поÑвлении. ÐÑÐ°Ñ Ñидел на оÑÑоманке Ð¼ÐµÐ¶Ð´Ñ Ð´Ð²ÑÐ¼Ñ ÐºÑÑивÑими и ÑазговаÑивавÑими ÑоÑедÑми. ÐÑÐ°Ñ Ñам не кÑÑил и не говоÑил, а, наклонÑÑ Ð³Ð¾Ð»Ð¾Ð²Ñ Ñо на один бок, Ñо на дÑÑгой, Ñ Ð²Ð¸Ð´Ð¸Ð¼Ñм ÑдоволÑÑÑвием ÑмоÑÑел на кÑÑивÑÐ¸Ñ Ð¸ ÑлÑÑал ÑÐ°Ð·Ð³Ð¾Ð²Ð¾Ñ Ð´Ð²ÑÑ ÑоÑедей ÑÐ²Ð¾Ð¸Ñ , коÑоÑÑÑ Ð¾Ð½ ÑÑÑавил Ð¼ÐµÐ¶Ð´Ñ Ñобой. Ðдин из говоÑивÑÐ¸Ñ Ð±Ñл ÑÑаÑÑкий, Ñ Ð¼Ð¾ÑÑиниÑÑÑм, желÑнÑм и бÑиÑÑм Ñ ÑдÑм лиÑом, Ñеловек, Ñже пÑиближавÑийÑÑ Ðº ÑÑаÑоÑÑи, Ñ Ð¾ÑÑ Ð¸ одеÑÑй, как ÑамÑй моднÑй молодой Ñеловек; он Ñидел Ñ Ð½Ð¾Ð³Ð°Ð¼Ð¸ на оÑÑоманке Ñ Ð²Ð¸Ð´Ð¾Ð¼ домаÑнего Ñеловека и, ÑÐ±Ð¾ÐºÑ Ð·Ð°Ð¿ÑÑÑив Ñебе далеко в ÑÐ¾Ñ ÑнÑаÑÑ, поÑÑвиÑÑо вÑÑгивал дÑм и жмÑÑилÑÑ. ÐÑо бÑл ÑÑаÑÑй Ñ Ð¾Ð»Ð¾ÑÑÑк ШинÑин, двоÑÑоднÑй бÑÐ°Ñ Ð³ÑаÑини, злой ÑзÑк, как пÑо него говоÑили в моÑковÑÐºÐ¸Ñ Ð³Ð¾ÑÑинÑÑ . Ðн, казалоÑÑ, ÑниÑÑ Ð¾Ð´Ð¸Ð» до Ñвоего ÑобеÑедника. ÐÑÑгой, Ñвежий, ÑозовÑй гваÑдейÑкий оÑиÑеÑ, безÑпÑеÑно вÑмÑÑÑй, заÑÑегнÑÑÑй и пÑиÑеÑаннÑй, деÑжал ÑнÑаÑÑ Ñ ÑеÑÐµÐ´Ð¸Ð½Ñ ÑÑа и ÑозовÑми гÑбами Ñлегка вÑÑÑгивал дÑмок, вÑпÑÑÐºÐ°Ñ ÐµÐ³Ð¾ колеÑками из кÑаÑивого ÑÑа. ÐÑо бÑл ÑÐ¾Ñ Ð¿Ð¾ÑÑÑик ÐеÑг, оÑиÑÐµÑ Ð¡ÐµÐ¼ÐµÐ½Ð¾Ð²Ñкого полка, Ñ ÐºÐ¾ÑоÑÑм ÐоÑÐ¸Ñ ÐµÑ Ð°Ð» вмеÑÑе в полк и коÑоÑÑм ÐаÑаÑа дÑазнила ÐеÑÑ, ÑÑаÑÑÑÑ Ð³ÑаÑинÑ, назÑÐ²Ð°Ñ ÐеÑга ее Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð¼. ÐÑÐ°Ñ Ñидел Ð¼ÐµÐ¶Ð´Ñ Ð½Ð¸Ð¼Ð¸ и внимаÑелÑно ÑлÑÑал. Самое пÑиÑÑное Ð´Ð»Ñ Ð³ÑаÑа занÑÑие, за иÑклÑÑением игÑÑ Ð² боÑÑон, коÑоÑÑÑ Ð¾Ð½ оÑÐµÐ½Ñ Ð»Ñбил, бÑло положение ÑлÑÑаÑÑего, оÑобенно когда ÐµÐ¼Ñ ÑдавалоÑÑ ÑÑÑавиÑÑ Ð´Ð²ÑÑ Ð³Ð¾Ð²Ð¾ÑливÑÑ ÑобеÑедников. â ÐÑ, как же, баÑÑÑка, mon très honorable 2 ÐлÑÑÐ¾Ð½Ñ ÐаÑлÑÑ, â говоÑил ШинÑин, поÑмеиваÑÑÑ Ð¸ ÑоединÑÑ (в Ñем и ÑоÑÑоÑла оÑобенноÑÑÑ ÐµÐ³Ð¾ ÑеÑи) ÑамÑе пÑоÑÑÑе наÑоднÑе ÑÑÑÑкие вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ñ Ð¸Ð·ÑÑканнÑми ÑÑанÑÑзÑкими ÑÑазами. â Vous comptez vous faire des rentes sur l\'état 3, Ñ ÑоÑÑ Ð´Ð¾Ñ Ð¾Ð´ÐµÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ñ Ð¾ÑиÑе? â ÐеÑ-Ñ, ÐеÑÑ ÐиколаевиÑ, Ñ ÑолÑко Ð¶ÐµÐ»Ð°Ñ Ð´Ð¾ÐºÐ°Ð·Ð°ÑÑ, ÑÑо в кавалеÑии вÑгод гоÑаздо менÑÑе пÑоÑив Ð¿ÐµÑ Ð¾ÑÑ. ÐÐ¾Ñ ÑепеÑÑ ÑообÑазиÑе, ÐеÑÑ ÐиколаевиÑ, мое положение. ÐеÑг говоÑил вÑегда оÑÐµÐ½Ñ ÑоÑно, Ñпокойно и ÑÑÑиво. Ð Ð°Ð·Ð³Ð¾Ð²Ð¾Ñ ÐµÐ³Ð¾ вÑегда каÑалÑÑ ÑолÑко его одного; он вÑегда Ñпокойно молÑал, пока говоÑили о Ñем-нибÑдÑ, не имеÑÑем пÑÑмого к Ð½ÐµÐ¼Ñ Ð¾ÑноÑениÑ. РмолÑаÑÑ Ñаким обÑазом он мог неÑколÑко ÑаÑов, не иÑпÑÑÑÐ²Ð°Ñ Ð¸ не пÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ñ Ð² дÑÑÐ³Ð¸Ñ Ð½Ð¸ малейÑего замеÑаÑелÑÑÑва. Ðо как ÑкоÑо ÑÐ°Ð·Ð³Ð¾Ð²Ð¾Ñ ÐºÐ°ÑалÑÑ ÐµÐ³Ð¾ лиÑно, он наÑинал говоÑиÑÑ Ð¿ÑоÑÑÑанно и Ñ Ð²Ð¸Ð´Ð¸Ð¼Ñм ÑдоволÑÑÑвием. â СообÑазиÑе мое положение, ÐеÑÑ ÐиколаиÑ: бÑÐ´Ñ Ñ Ð² кавалеÑии, Ñ Ð±Ñ Ð¿Ð¾Ð»ÑÑал не более двÑÑ ÑÐ¾Ñ ÑÑблей в ÑÑеÑÑ, даже и в Ñине поÑÑÑика; а ÑепеÑÑ Ñ Ð¿Ð¾Ð»ÑÑÐ°Ñ Ð´Ð²ÐµÑÑи ÑÑидÑаÑÑ, â говоÑил он Ñ ÑадоÑÑÑÑ, пÑиÑÑÐ½Ð¾Ñ ÑлÑбкой, оглÑдÑÐ²Ð°Ñ Ð¨Ð¸Ð½Ñина и гÑаÑа, как бÑдÑо Ð´Ð»Ñ Ð½ÐµÐ³Ð¾ бÑло оÑевидно, ÑÑо его ÑÑÐ¿ÐµÑ Ð²Ñегда бÑÐ´ÐµÑ ÑоÑÑавлÑÑÑ Ð³Ð»Ð°Ð²Ð½ÑÑ ÑÐµÐ»Ñ Ð¶ÐµÐ»Ð°Ð½Ð¸Ð¹ вÑÐµÑ Ð¾ÑÑалÑнÑÑ Ð»Ñдей. â ÐÑоме Ñого, ÐеÑÑ ÐиколаиÑ, пеÑÐµÐ¹Ð´Ñ Ð² гваÑдиÑ, Ñ Ð½Ð° видÑ, â пÑодолжал ÐеÑг, â и ваканÑии в гваÑдейÑкой Ð¿ÐµÑ Ð¾Ñе гоÑаздо ÑаÑе. ÐоÑом, Ñами ÑообÑазиÑе, как Ñ Ð¼Ð¾Ð³ ÑÑÑÑоиÑÑÑÑ Ð¸Ð· двÑÑ ÑÐ¾Ñ ÑÑидÑаÑи ÑÑблей. Ð Ñ Ð¾ÑкладÑÐ²Ð°Ñ Ð¸ еÑе оÑÑÑ Ð¿Ð¾ÑÑлаÑ, â пÑодолжал он, пÑÑÐºÐ°Ñ ÐºÐ¾Ð»ÐµÑко. â La balance y est... 4 ÐÐµÐ¼ÐµÑ Ð½Ð° обÑÑ Ðµ молоÑÐ¸Ñ Ñ Ð»ÐµÐ±ÐµÑ, comme dit le proverbe 5, â пеÑекладÑÐ²Ð°Ñ ÑнÑаÑÑ Ð½Ð° дÑÑгÑÑ ÑÑоÑÐ¾Ð½Ñ ÑÑа, Ñказал ШинÑин и подмигнÑл гÑаÑÑ. ÐÑÐ°Ñ ÑаÑÑ Ð¾Ñ Ð¾ÑалÑÑ. ÐÑÑгие гоÑÑи, видÑ, ÑÑо ШинÑин Ð²ÐµÐ´ÐµÑ ÑазговоÑ, подоÑли поÑлÑÑаÑÑ. ÐеÑг, не замеÑÐ°Ñ Ð½Ð¸ наÑмеÑки, ни ÑавнодÑÑиÑ, пÑодолжал ÑаÑÑказÑваÑÑ Ð¾ Ñом, как пеÑеводом в гваÑÐ´Ð¸Ñ Ð¾Ð½ Ñже вÑигÑал Ñин пеÑед Ñвоими ÑоваÑиÑами по коÑпÑÑÑ, как в военное вÑÐµÐ¼Ñ ÑоÑного командиÑа могÑÑ ÑбиÑÑ Ð¸ он, оÑÑавÑиÑÑ ÑÑаÑÑим в ÑоÑе, Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÐµÐ½Ñ Ð»ÐµÐ³ÐºÐ¾ бÑÑÑ ÑоÑнÑм, и как в Ð¿Ð¾Ð»ÐºÑ Ð²Ñе лÑбÑÑ ÐµÐ³Ð¾, и как его папенÑка им доволен. ÐеÑг, видимо, наÑлаждалÑÑ, ÑаÑÑказÑÐ²Ð°Ñ Ð²Ñе ÑÑо, и, казалоÑÑ, не подозÑевал Ñого, ÑÑо Ñ Ð´ÑÑÐ³Ð¸Ñ Ð»Ñдей могли бÑÑÑ Ñоже Ñвои инÑеÑеÑÑ. Ðо вÑе, ÑÑо он ÑаÑÑказÑвал, бÑло Ñак мило, ÑÑепенно, наивноÑÑÑ Ð¼Ð¾Ð»Ð¾Ð´Ð¾Ð³Ð¾ Ñгоизма его бÑла Ñак оÑевидна, ÑÑо он обезоÑÑживал ÑÐ²Ð¾Ð¸Ñ ÑлÑÑаÑелей. â ÐÑ, баÑÑÑка, Ð²Ñ Ð¸ в Ð¿ÐµÑ Ð¾Ñе и в кавалеÑии, везде пойдеÑе в Ñ Ð¾Ð´; ÑÑо Ñ Ð²Ð°Ð¼ пÑедÑекаÑ, â Ñказал ШинÑин, ÑÑÐµÐ¿Ð»Ñ ÐµÐ³Ð¾ по плеÑÑ Ð¸ ÑпÑÑÐºÐ°Ñ Ð½Ð¾Ð³Ð¸ Ñ Ð¾ÑÑоманки. ÐеÑг ÑадоÑÑно ÑлÑбнÑлÑÑ. ÐÑаÑ, а за ним и гоÑÑи вÑÑли в гоÑÑинÑÑ. ÐÑло Ñо вÑÐµÐ¼Ñ Ð¿ÐµÑед званÑм обедом, когда ÑобÑавÑиеÑÑ Ð³Ð¾ÑÑи не наÑинаÑÑ Ð´Ð»Ð¸Ð½Ð½Ð¾Ð³Ð¾ ÑазговоÑа в ожидании пÑизÑва к закÑÑке, а вмеÑÑе Ñ Ñем ÑÑиÑаÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñм ÑевелиÑÑÑÑ Ð¸ не молÑаÑÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°ÑÑ, ÑÑо они ниÑколÑко не неÑеÑÐ¿ÐµÐ»Ð¸Ð²Ñ ÑеÑÑÑ Ð·Ð° ÑÑол. ХозÑева поглÑдÑваÑÑ Ð½Ð° двеÑÑ Ð¸ изÑедка пеÑеглÑдÑваÑÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñобой. ÐоÑÑи по ÑÑим взглÑдам ÑÑаÑаÑÑÑÑ Ð´Ð¾Ð³Ð°Ð´Ð°ÑÑÑÑ, кого или Ñего еÑе ждÑÑ: важного опоздавÑего ÑодÑÑвенника или кÑÑанÑÑ, коÑоÑое еÑе не поÑпело. ÐÑÐµÑ Ð¿ÑÐ¸ÐµÑ Ð°Ð» пеÑед ÑамÑм обедом и неловко Ñидел поÑÑедине гоÑÑиной на пеÑвом попавÑемÑÑ ÐºÑеÑле, загоÑодив вÑем доÑогÑ. ÐÑаÑÐ¸Ð½Ñ Ñ Ð¾Ñела заÑÑавиÑÑ ÐµÐ³Ð¾ говоÑиÑÑ, но он наивно ÑмоÑÑел в оÑки вокÑÑг ÑебÑ, как Ð±Ñ Ð¾ÑÑÑÐºÐ¸Ð²Ð°Ñ ÐºÐ¾Ð³Ð¾-Ñо, и одноÑложно оÑвеÑал на вÑе вопÑоÑÑ Ð³ÑаÑини. Ðн бÑл ÑÑеÑниÑелен и один не замеÑал ÑÑого. ÐолÑÑÐ°Ñ ÑаÑÑÑ Ð³Ð¾ÑÑей, знавÑÐ°Ñ ÐµÐ³Ð¾ иÑÑоÑÐ¸Ñ Ñ Ð¼ÐµÐ´Ð²ÐµÐ´ÐµÐ¼, лÑбопÑÑно ÑмоÑÑели на ÑÑого болÑÑого, ÑолÑÑого и ÑмиÑного Ñеловека, недоÑмеваÑ, как мог Ñакой ÑÐ²Ð°Ð»ÐµÐ½Ñ Ð¸ ÑкÑомник ÑделаÑÑ ÑакÑÑ ÑÑÑÐºÑ Ñ ÐºÐ²Ð°ÑÑалÑнÑм.") */ '; $regex = '/([a-z_\\][a-z0-9_\:\\]*[a-z]{1})|((?:[+-]?[0-9]+(?:[\.][0-9]+)*)(?:[eE][+-]?[0-9]+)?)|("(?:[^"]|"")*")|\s+|\*+|(.)/iu'; $matches = preg_split($regex, $input); Expected result: ---------------- An array containing substrings of subject split along boundaries matched by pattern. Actual result: -------------- Segmentation fault. Process finished with exit code 139. -- Edit bug report at https://bugs.php.net/bug.php?id=65621&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=65621&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=65621&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=65621&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=65621&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=65621&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=65621&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=65621&r=needscript Try newer version: https://bugs.php.net/fix.php?id=65621&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=65621&r=support Expected behavior: https://bugs.php.net/fix.php?id=65621&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=65621&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=65621&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=65621&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=65621&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=65621&r=dst IIS Stability: https://bugs.php.net/fix.php?id=65621&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=65621&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=65621&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=65621&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=65621&r=mysqlcfg