这个strncpy存在哪些安全问题?

时间:2012-06-01 06:54:17

标签: c++ c security strncpy

  

可能重复:
  Why is strncpy insecure?

strncpy()有哪些安全问题:

   function foo(char * param) {
   char local[100];
     /* do stuff */
   strncpy(local, param, strlen(param));
     /* do more stuff */
   }

1 个答案:

答案 0 :(得分:3)

通常,strncpy(3)的最大长度(第3个)参数将是目标的大小,而不是源的大小。将转移限制为源的大小确实没有意义,因为这是使用更危险的普通strcpy(3)传输的最大值。

并且,为了回答这个问题,问题是这不是memory-safe operation,因此攻击者可以提供比覆盖堆栈上的代码的缓冲区更长的字符串,如果仔细安排,可以执行来自攻击者的任意代码。