我在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;
}
Run Code Online (Sandbox Code Playgroud)
有没有人经历过这种行为?
如果是,请告诉我.
根据我的观察,必须有来自操作系统的补丁,这个问题得到解决.但如果有任何补丁,我无法得到那个补丁.请多点亮一点.
谢谢和问候,Thumbeti