<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>21684</bug_id>
          
          <creation_ts>2009-09-23 14:39:36 +0400</creation_ts>
          <short_desc>ошибка в strfmon()</short_desc>
          <delta_ts>2010-05-27 04:46:02 +0400</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>glibc-core</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://sourceware.org/bugzilla/show_bug.cgi?id=10600</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="stalker">stalker</reporter>
          <assigned_to name="Gleb F-Malinovskiy">glebfm</assigned_to>
          <cc>damir</cc>
    
    <cc>erthad</cc>
    
    <cc>glebfm</cc>
    
    <cc>ldv</cc>
    
    <cc>mike</cc>
    
    <cc>php-coder</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>99922</commentid>
    <comment_count>0</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2009-09-23 14:39:36 +0400</bug_when>
    <thetext>На 4.0 успешно  срабатывает тесткейз (см ниже) на ошибку по поводу strfmon в glibc. На 32 битных хостах получается просто сегфолт..а вот на 64 битном куда серьёзнее - съедается вся доступная память. Аналогичные симптомы в 4.1 и в p5.


==
#include &lt;stdio.h&gt;
#include &lt;monetary.h&gt;
void main(void)
{
        double p = 1;
        char str[20];
        strfmon(str, sizeof(str), &quot;%.1073741821i&quot;, p);
}

или оно же на php
php -r &apos;money_format(&quot;%.1073741821i&quot;,1);&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99929</commentid>
    <comment_count>1</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2009-09-23 15:10:04 +0400</bug_when>
    <thetext>Апстрим не торопится это исправлять.

История может предствлять реальную угрозу только в том случае, когда строка формата, передаваемая функции strfmon, является непроверенным вводом.  Последнее плохо в любом случае.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99946</commentid>
    <comment_count>2</comment_count>
    <who name="stalker">stalker</who>
    <bug_when>2009-09-23 16:10:02 +0400</bug_when>
    <thetext>То что  php не показатель понятно.Но тем не менее сегодня 2 ovz-контейнера ушли в даун... там как раз используется money_format. Отключить использование функции не могу..ибо оно нужно.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>99978</commentid>
    <comment_count>3</comment_count>
      <attachid>3931</attachid>
    <who name="Damir Shayhutdinov">damir</who>
    <bug_when>2009-09-23 19:10:54 +0400</bug_when>
    <thetext>Created attachment 3931
Примерный патч для glibc-2.3.5

Вот с таким патчем у меня на glibc-2.3.5 (своя собственная embedded-версия) не падает.
Хотя конечно, правильнее было бы патчить __printf_fp, чтобы он не писал куда не надо.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109486</commentid>
    <comment_count>4</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2010-05-27 04:46:02 +0400</bug_when>
    <thetext>По крайней мере в glibc &gt;= 2.10.1-alt2 это уже исправлено.
В 5.1/p5 сейчас находится glibc-2.10.1-alt7.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3931</attachid>
            <date>2009-09-23 19:10:54 +0400</date>
            <delta_ts>2009-09-23 19:10:54 +0400</delta_ts>
            <desc>Примерный патч для glibc-2.3.5</desc>
            <filename>strfmon_l.patch</filename>
            <type>text/plain</type>
            <size>972</size>
            <attacher name="Damir Shayhutdinov">damir</attacher>
            
              <data encoding="base64">SW5kZXg6IHN0cmZtb25fbC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN0cmZtb25fbC5jCShyZXZpc2lvbiA4
MCkKKysrIHN0cmZtb25fbC5jCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsNyArMjMzLDcgQEAKIAog
CSAgLyogSWYgd2UgZG9uJ3QgaGF2ZSBlbm91Z2ggcm9vbSBmb3IgdGhlIGRlbWFuZGVkIHdpZHRo
IHdlCiAJICAgICBjYW4gc3RvcCBub3cgYW5kIHJldHVybiBhbiBlcnJvci4gICovCi0JICBpZiAo
ZGVzdCArIHdpZHRoID49IHMgKyBtYXhzaXplKQorCSAgaWYgKHdpZHRoIDwgMCB8fCBkZXN0ICsg
d2lkdGggPj0gcyArIG1heHNpemUpCiAJICAgIHsKIAkgICAgICBfX3NldF9lcnJubyAoRTJCSUcp
OwogCSAgICAgIHJldHVybiAtMTsKQEAgLTI1NSw2ICsyNTUsMTEgQEAKIAkgICAgICBsZWZ0X3By
ZWMgKj0gMTA7CiAJICAgICAgbGVmdF9wcmVjICs9IHRvX2RpZ2l0ICgqZm10KTsKIAkgICAgfQor
CSAgaWYgKGxlZnRfcHJlYyA8IDAgfHwgZGVzdCArIGxlZnRfcHJlYyA+PSBzICsgbWF4c2l6ZSkK
KwkgICAgeworCSAgICAgIF9fc2V0X2Vycm5vIChFMkJJRyk7CisJICAgICAgcmV0dXJuIC0xOwor
CSAgICB9CiAJfQogCiAgICAgICAvKiBSZWNvZ25pemUgcmlnaHQgcHJlY2lzaW9uLiAgKi8KQEAg
LTI3Miw2ICsyNzcsMTEgQEAKIAkgICAgICByaWdodF9wcmVjICo9IDEwOwogCSAgICAgIHJpZ2h0
X3ByZWMgKz0gdG9fZGlnaXQgKCpmbXQpOwogCSAgICB9CisJICBpZiAocmlnaHRfcHJlYyA8IDAg
fHwgZGVzdCArIGxlZnRfcHJlYyArIHJpZ2h0X3ByZWMgPj0gcyArIG1heHNpemUgKQorCSAgICB7
CisJICAgICAgX19zZXRfZXJybm8gKEUyQklHKTsKKwkgICAgICByZXR1cm4gLTE7CisJICAgIH0K
IAl9CiAKICAgICAgIC8qIEhhbmRsZSBtb2RpZmllci4gIFRoaXMgaXMgYW4gZXh0ZW5zaW9uLiAg
Ki8K
</data>

          </attachment>
      

    </bug>

</bugzilla>