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

Boris Savelev boris.savelev на gmail.com
Чт Апр 4 14:04:28 MSK 2013


компилируется... спасибо)

4 апреля 2013 г., 11:42 пользователь Damir Shayhutdinov
<damir на altlinux.org> написал:
> В коде похоже есть ошибка.
>
> Можно вот так подправить:
>
> 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
>
>
>
> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



-- 
Boris


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