<html>
  <head>
    <meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">04.04.2013 17:07, Dmitry V. Levin
      пишет:<br>
    </div>
    <blockquote cite="mid:20130404130757.GB12318@altlinux.org"
      type="cite">
      <pre wrap="">On Thu, Apr 04, 2013 at 03:07:28PM +0400, Aleksey Novodvorsky wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Так как бага только на i586, то, возможно, стоит уменьшить или снять оптимизацию
Rgrds, Алексей
</pre>
      </blockquote>
      <pre wrap="">
Очень мило.  Отключение _FORTIFY_SOURCE - это не отключение ошибки, а
всего лишь отключение проверки ошибки.  Ошибка при этом никуда не денется.
Фраза "will always overflow destination buffer" означает, что, по мнению
gcc, если исполнение кода дойдет до указанной точки, то destination buffer
overflow произойдет наверняка.</pre>
    </blockquote>
    <br>
    Насколько я понял из представленного кода, то переполнение будет
    только тогда, когда q1 на некой итерации цикла будет равно
    sizeof(line) и если мы провалимся по всем условиям вниз, то будет на
    strncpy такая ситуация для q1:<br>
    <br>
    q1 = 256 + 4 - 4 = 256<br>
    <br>
     и когда мы будем туда вклинивать ещё три байта, то это, безусловно,
    переполнение. Но, во-первых, это будет не  always, а во-вторых, не
    понятно почему хаки типа
    <a class="moz-txt-link-freetext" href="http://pastie.org/private/p8cenbtjbwnjnagcn4rciq">http://pastie.org/private/p8cenbtjbwnjnagcn4rciq</a> не гасят сообщение
    о переполнении.<br>
    <br>
    Я не знаю как устроен чекер этого code case. Может быть кто-то
    прольёт свет и проведёт ликбез?<br>
    <br>
    <br>
    <blockquote cite="mid:20130404130757.GB12318@altlinux.org"
      type="cite">
      <pre wrap="">

</pre>
      <blockquote type="cite">
        <pre wrap="">4 апреля 2013 г., 15:01 пользователь Boris Savelev
<a class="moz-txt-link-rfc2396E" href="mailto:boris.savelev@gmail.com">&lt;boris.savelev@gmail.com&gt;</a> написал:
</pre>
        <blockquote type="cite">
          <pre wrap="">поторопился я. ошибка всё равно. только теперь на memcpy (

4 апреля 2013 г., 14:04 пользователь Boris Savelev
<a class="moz-txt-link-rfc2396E" href="mailto:boris.savelev@gmail.com">&lt;boris.savelev@gmail.com&gt;</a> написал:
</pre>
          <blockquote type="cite">
            <pre wrap="">компилируется... спасибо)

4 апреля 2013 г., 11:42 пользователь Damir Shayhutdinov
<a class="moz-txt-link-rfc2396E" href="mailto:damir@altlinux.org">&lt;damir@altlinux.org&gt;</a> написал:
</pre>
            <blockquote type="cite">
              <pre wrap="">В коде похоже есть ошибка.

Можно вот так подправить:

1115                                                         if (p1 &lt; q &amp;&amp;
((d = *p1++) == '_' || d == '$'))
1116
strncpy(q1 - 4, "isc", 3);
1117                                                         else
1118                                                                 *q1++ =
d;

заменить на

if (p1 &lt; q)
{
      if ((d = *p1++) == '_' || d == '$')
           memcpy(q1 - 4, "isc", 3);
      else
           *q1++ = d;
}

Правда я не уверен, что при этом проблема не исчезнет. Если не исчезнет,
можно еще в строчке 1073 увеличить размер line с 256 до 260.


2013/4/4 Boris Savelev <a class="moz-txt-link-rfc2396E" href="mailto:boris@altlinux.org">&lt;boris@altlinux.org&gt;</a>
</pre>
              <blockquote type="cite">
                <pre wrap="">
Привет!
Помогите мне, пожалуйста, собрать firebird.
Ошибка:
In function 'char* strncpy(char*, const char*, size_t)',
    inlined from 'void gen_blr(void*, SSHORT, const char*)' at
../src/gpre/c_cxx.cpp:1116:34:
/usr/include/bits/string3.h:120:71: error: call to char*
__builtin___strncpy_chk(char*, const char*, unsigned int, unsigned
int) will always overflow destination buffer

Лог:
<a class="moz-txt-link-freetext" href="http://git.altlinux.org/tasks/93764/build/100/i586/log">http://git.altlinux.org/tasks/93764/build/100/i586/log</a>

Код:

<a class="moz-txt-link-freetext" href="http://git.altlinux.org/people/boris/packages/?p=firebird.git;a=blob;f=Firebird/src/gpre/c_cxx.cpp;h=806bcac4ed69b8d0963c69c16f6b2c9fbd6b7852;hb=HEAD#l1116">http://git.altlinux.org/people/boris/packages/?p=firebird.git;a=blob;f=Firebird/src/gpre/c_cxx.cpp;h=806bcac4ed69b8d0963c69c16f6b2c9fbd6b7852;hb=HEAD#l1116</a>
</pre>
              </blockquote>
            </blockquote>
          </blockquote>
        </blockquote>
      </blockquote>
      <pre wrap="">
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Devel@lists.altlinux.org">Devel@lists.altlinux.org</a>
<a class="moz-txt-link-freetext" href="https://lists.altlinux.org/mailman/listinfo/devel">https://lists.altlinux.org/mailman/listinfo/devel</a></pre>
    </blockquote>
    <br>
  </body>
</html>