The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"_strncat"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"_strncat"  +/
Сообщение от fedd on 22-Дек-10, 10:50 
int _strncat(char *dest, char *src,int dest_size)
{
  int status = 0;
  if ( (dest_size - strlen(dest))  > strlen(src) )
     {
      strncat( dest, src, strlen(src) );
      dest[dest_size] = '\0';
      status = 1;
     }
  return status;
}

Можноли считать даную шубу безопасной?

Ответить | Правка | Cообщить модератору

Оглавление

  • _strncat, Aquarius, 17:53 , 22-Дек-10, (1)  
  • _strncat, Aquarius, 18:01 , 22-Дек-10, (2)  
    • _strncat, fedd, 22:17 , 22-Дек-10, (3)  
      • _strncat, Aquarius, 11:22 , 23-Дек-10, (4)  
        • _strncat, fedd, 15:11 , 23-Дек-10, (5)  

Сообщения по теме [Сортировка по времени | RSS]


1. "_strncat"  +/
Сообщение от Aquarius (ok) on 22-Дек-10, 17:53 
>[оверквотинг удален]
>   int status = 0;
>   if ( (dest_size - strlen(dest))  > strlen(src) )
>      {
>       strncat( dest, src, strlen(src) );
>       dest[dest_size] = '\0';
>       status = 1;
>      }
>   return status;
>  }
> Можноли считать даную шубу безопасной?

что есть dest_size?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "_strncat"  +/
Сообщение от Aquarius (ok) on 22-Дек-10, 18:01 
>[оверквотинг удален]
>   int status = 0;
>   if ( (dest_size - strlen(dest))  > strlen(src) )
>      {
>       strncat( dest, src, strlen(src) );
>       dest[dest_size] = '\0';
>       status = 1;
>      }
>   return status;
>  }
> Можноли считать даную шубу безопасной?

что есть dest_size?
так-то, еще не факт, что strlen(dest) не больше dest_size
dest_size, IMHO, должна быть типа size_t

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "_strncat"  +/
Сообщение от fedd on 22-Дек-10, 22:17 
>[оверквотинг удален]
>>       strncat( dest, src, strlen(src) );
>>       dest[dest_size] = '\0';
>>       status = 1;
>>      }
>>   return status;
>>  }
>> Можноли считать даную шубу безопасной?
> что есть dest_size?
> так-то, еще не факт, что strlen(dest) не больше dest_size
> dest_size, IMHO, должна быть типа size_t

dest_size - это размер, выделенной памяти для dest

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "_strncat"  +/
Сообщение от Aquarius (ok) on 23-Дек-10, 11:22 
>[оверквотинг удален]
>>>       dest[dest_size] = '\0';
>>>       status = 1;
>>>      }
>>>   return status;
>>>  }
>>> Можноли считать даную шубу безопасной?
>> что есть dest_size?
>> так-то, еще не факт, что strlen(dest) не больше dest_size
>> dest_size, IMHO, должна быть типа size_t
> dest_size - это размер, выделенной памяти для dest

количество байт?
как считаете, dest[dest_size] лежит в пределах выделенной памяти?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "_strncat"  +/
Сообщение от fedd on 23-Дек-10, 15:11 
>[оверквотинг удален]
>>>>       status = 1;
>>>>      }
>>>>   return status;
>>>>  }
>>>> Можноли считать даную шубу безопасной?
>>> что есть dest_size?
>>> так-то, еще не факт, что strlen(dest) не больше dest_size
>>> dest_size, IMHO, должна быть типа size_t
>> dest_size - это размер, выделенной памяти для dest
> количество байт?

да
> как считаете, dest[dest_size] лежит в пределах выделенной памяти?

нет конечно dest_size - приходит с -1

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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