The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Уязвимость в HTTP-сервере muhttpd, открываяющая доступ к фай..."
Отправлено burjui, 08-Авг-22 11:21 
Серьёзно? Местных сишников послушать - так они лучшие в мире и никогда не делают ошибок, а ты очевидных косяков не видишь :)

Во-первых, вместо этой портянки

environ = malloc(sizeof(char*));
if(environ) {
    *environ = NULL;
}

достаточно написать

environ = calloc(sizeof(char*), 1);

т.к. NULL в C - это просто ноль, приведённый к типу void*.

Во-вторых, тут как в анекдоте: вы или штаны наденьте, или крестик снимите. Зачем clearenv() возвращать int, если она всегда возвращает ноль? Тут уж или void clearenv(), или давайте возвращать ещё что-то кроме нуля.

В-третьих, если функция возвращает некие коды, неплохо бы их объявить, а не просто return 0. Вернуть ноль любой дурак может, а вот чтобы понять, что он значит в этой функции, нужно уже лезть в исходник,

В-чертвёртых, комментарий "Create empty environment" должен комментировать функцию, а не её внутренности. И вообще, он должен быть в заголовочном файле.

В общем, как-то так:

---- clearenv.h ----

#define CLEARENV_SUCCESS 0
#define CLEARENV_FAILURE -1

/* Create empty environment */
int clearenv(void);

---- clearenv.c ----

int clearenv(void) {
    /* We would like to free previously set environment variables here,
     * but at least FreeBSD 5.1 doesn't let us */
    environ = calloc(sizeof(char*), 1);
    return environ ? CLEARENV_SUCCESS : CLEARENV_FAILURE;
}

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру