На 4.0 успешно срабатывает тесткейз (см ниже) на ошибку по поводу strfmon в glibc. На 32 битных хостах получается просто сегфолт..а вот на 64 битном куда серьёзнее - съедается вся доступная память. Аналогичные симптомы в 4.1 и в p5. == #include <stdio.h> #include <monetary.h> void main(void) { double p = 1; char str[20]; strfmon(str, sizeof(str), "%.1073741821i", p); } или оно же на php php -r 'money_format("%.1073741821i",1);'
Апстрим не торопится это исправлять. История может предствлять реальную угрозу только в том случае, когда строка формата, передаваемая функции strfmon, является непроверенным вводом. Последнее плохо в любом случае.
То что php не показатель понятно.Но тем не менее сегодня 2 ovz-контейнера ушли в даун... там как раз используется money_format. Отключить использование функции не могу..ибо оно нужно.
Created attachment 3931 [details] Примерный патч для glibc-2.3.5 Вот с таким патчем у меня на glibc-2.3.5 (своя собственная embedded-версия) не падает. Хотя конечно, правильнее было бы патчить __printf_fp, чтобы он не писал куда не надо.
По крайней мере в glibc >= 2.10.1-alt2 это уже исправлено. В 5.1/p5 сейчас находится glibc-2.10.1-alt7.