Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Безопасна ли функция?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Skaf
Всем привет. Пишу на Си. К сожалению не являюсь пока большим специалистом, поэтому обращаюсь за помощью.

Есть функция

Код
void telnet_send_line (char *line, char newline=0){
    char *bufptr;
    unsigned char linelen = strlen(line);
            bufptr = uip_appdata;
    memcpy(bufptr, line, linelen);    
    uip_send(uip_appdata, linelen);
}


Является ли она безопасной? Или возможны глюки с памятью?

Функция принимает указатель на строку. Понятное дело строка неизвестной длинны.
Потом создается указатель, измеряется длинна строки. Указателю bufptr присваивается значение. Это тоже указатель, только на системный буфер, в который таким образом происходит запись.

потом строка копируется в буфер и вызывается системная функция.
AHTOXA
Нормальная функция. Только надо проверить, что linelen не больше, чем размер буфера uip_appdata.
zltigo
Цитата(AHTOXA @ Feb 28 2010, 20:53) *
Нормальная функция.

Муть голубая. newline особый прикол. Остальное
Код
void telnet_send_line (char *line){
int linelen = strlen(line) + 1;
//контроль размера добавить, например:
if( linelen > sizeof(тот_самый_буфер) )
        linelen = sizeof(тот_самый_буфер);
    memcpy(uip_appdata, line, linelen);    
    uip_send(uip_appdata, linelen);
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.