История изменений
Исправление fsb4000, (текущая версия) :
malloc() в Си при невозможности выделить память тихо возвращает NULL. Так называемый системный язык Rust кладёт библиотеку в панику и, соответственно, жёстко прерывает работу вызывающей программы. Для curl - это no go. И хорошо.
Ты 5 звёзд заработал и настолько плох?
void* safe_malloc(size_t size)
{
void* res = malloc(size);
if (res == NULL) abort();
return res;
}
Например в glib используется такой безопасный malloc, g_malloc
, и он упадёт, а не вернёт NULL…
gpointer
g_malloc (gsize n_bytes)
{
gpointer mem;
mem = malloc (n_bytes);
if (mem)
return mem;
g_error ("%s: failed to allocate %"G_GSIZE_FORMAT" bytes",
G_STRLOC, n_bytes);
}
Исходная версия fsb4000, :
malloc() в Си при невозможности выделить память тихо возвращает NULL. Так называемый системный язык Rust кладёт библиотеку в панику и, соответственно, жёстко прерывает работу вызывающей программы. Для curl - это no go. И хорошо.
Ты 5 звёзд заработал и настолько плох?
void* safe_malloc(size_t size)
{
void* res = malloc(size);
if (res == NULL) abort();
return res;
}
Например в glib используется такой безопасный malloc, g_malloc
, и он упадёт, а не вернёт NULL…