我正在尝试使用safe_strcpy
将字符串复制到另一个字符串,但似乎无法找到函数定义。
这就是我在做什么:
char value[256];
char *var = NULL;
var = malloc(sizeof(value));
safe_strcpy(var, value, strlen(value)+1);
我想知道是否需要为malloc
添加错误处理,或safe_stcpy
是否需要处理错误处理?
答案 0 :(得分:0)
在samba的current source code中,我找不到任何名为'safe_strcpy'的函数。我可以找到alpha_strcpy
,在评论中描述为“偏执狂strcpy”,我怀疑它已经取代了你之前询问过的函数,尽管它有一个不同的原型和一个额外的参数。
反正:
char *alpha_strcpy(char *dest,
const char *src,
const char *other_safe_chars,
size_t maxlength)
{
size_t len, i;
if (!dest) {
smb_panic("ERROR: NULL dest in alpha_strcpy");
}
所以,这个函数至少会检查dest,但是如果它为null则会出现恐慌,这可能不是你想要的。
我建议你总是自己检查malloc的返回值。