[devel] firebird x86 error will always overflow destination buffer HELP!

Damir Shayhutdinov damir на altlinux.org
Чт Апр 4 11:42:32 MSK 2013


В коде похоже есть ошибка.

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

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

заменить на

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

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


2013/4/4 Boris Savelev <boris на altlinux.org>

> Привет!
> Помогите мне, пожалуйста, собрать 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
>
> Лог:
> http://git.altlinux.org/tasks/93764/build/100/i586/log
>
> Код:
>
> http://git.altlinux.org/people/boris/packages/?p=firebird.git;a=blob;f=Firebird/src/gpre/c_cxx.cpp;h=806bcac4ed69b8d0963c69c16f6b2c9fbd6b7852;hb=HEAD#l1116
>
>
> --
> Boris
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel
----------- следующая часть -----------
Вложение в формате HTML было удалено...
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20130404/7dfdee82/attachment.html>


Подробная информация о списке рассылки Devel