URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8975
[ Назад ]

Исходное сообщение
"_strncat"

Отправлено fedd , 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;
}

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


Содержание

Сообщения в этом обсуждении
"_strncat"
Отправлено Aquarius , 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?


"_strncat"
Отправлено Aquarius , 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


"_strncat"
Отправлено fedd , 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


"_strncat"
Отправлено Aquarius , 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] лежит в пределах выделенной памяти?


"_strncat"
Отправлено fedd , 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