Странное поведение mailto ( double free or corruption)

Набираю:
mailto user
Subject: Hello
Hello
~w

Получаю:
*** Error in `mailto': double free or corruption (!prev): 0x0000000001c19a90 ***
И далее по тексту еще много всего.
А в конце вывода
Segmentation fault.

И ? И что ?

И ?
И что ?

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Хотел спросить, почему такое

Хотел спросить, почему такое возникает? Но уже прочитал.
Спрашивать, стоит ли из-за этого беспокоиться, видимо, нет смысла.

Так что, в принципе, ничего.

Но чтобы совсем пусто не было, вопрос: кто-нибудь сталкивался с подобным?

Без backtrace-а сложно

Без backtrace-а сложно сказать в чём причина

Нейтральность - высшее достижение сознания!

gdb и valgrind не умею,

gdb и valgrind не умею, скинул баг по ссылке, что Анархист привел, файл с выводом прикрепил.
https://bugs.gentoo.org/show_bug.cgi?id=549922

На правах рассуждений:

Наверное, что-то близко к этой же проблеме.
http://qweewqrty.blogspot.ru/2011/10/glibc-detected-double-free-or.html
Не задано имя файла, (в качестве предположения) память не выделена (malloc), а потом free
для не выделенной памяти.

Вероятно, вот в этом блоке все события. (Это пакет metamail mm2.7.tar.Z, файл mm2.7/src/metamail/mailto.c)
И проверки имени файла, похоже, нет.
case 'w':
{
FILE *fptmp;
char *fname;
fclose(fpout);
fname = start;
fptmp = fopen(fname, "w");
WriteOutMessage(fptmp, ToList, Subject, CCList, FirstPart);
TempCloseStyles(fptmp);
if(fclose(fptmp)) {
fprintf(stderr, "Could not write file %s\n", fname);
} else {
printf("Wrote draft to %s\n", fname);
}
fpout = fopen(CurrentPart->filename, "a");
if (!fpout) {
fprintf(stderr, "mailto: Can't open temporary file %s\n", CurrentPart->filename);
cleanexit(-1);
}
break;

GOTO

https://bugs.gentoo.org/

:wq
--
Live free or die

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".