gpt4 book ai didi

c - samba中的safe_strcpy检查内存分配是否成功

转载 作者:行者123 更新时间:2023-11-30 17:12:35 25 4
gpt4 key购买 nike

我正在尝试使用 safe_strcpy 将一个字符串复制到另一个字符串,但似乎找不到函数定义。

这就是我正在做的事情:

 char value[256];
char *var = NULL;
var = malloc(sizeof(value));
safe_strcpy(var, value, strlen(value)+1);

我想知道是否需要为 malloc 添加错误处理,或者 safe_stcpy 会处理它吗?

最佳答案

current source code samba 中我找不到任何名为“safe_strcpy”的函数。我可以找到 alpha_strcpy,在评论中被描述为“Paranoid strcpy”,我怀疑它已经取代了您之前询问的函数,尽管它有一个带有附加参数的不同原型(prototype)。

无论如何:

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,但如果它为空,它就会出现 panic ,这可能不是你想要的。

我建议您始终亲自检查 malloc 的返回值。

关于c - samba中的safe_strcpy检查内存分配是否成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31447790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com