【发布时间】:2011-01-06 16:20:54
【问题描述】:
我在 AIX 5.3 和 6.1 上看到了“strndup”调用的奇怪行为。 如果我调用 strndup 的大小大于实际源字符串长度的大小,则在该调用之后会出现堆栈损坏。
以下是可能出现此问题的示例代码:
int main ()
{
char *dst_str = NULL;
char src_str[1023] = "sample string";
dst_str = strndup(src_str, sizeof(src_str));
free(dst_str);
return 0;
}
有人经历过这种行为吗?
如果是,请告诉我。
根据我的观察,必须有来自操作系统的补丁修复了这个问题。但如果有的话,我无法得到那个补丁。请点亮。
感谢和问候, 大拇指
【问题讨论】: