c - memcpy 溢出边界利用? (破坏堆栈)

标签 c stack overflow

我试图弄清楚这是否会以某种方式溢出:

void print_address(char *p)
{
  arp_ hw;
  int i;

  hw.length = (size) *(p + _OFFSET1); //189 + 4 = 193
  memcpy(hw.addr, packet + _OFFSET2, hw.length);


  return;
}

其中 packet 是从 .txt 文件读取的输入?

最佳答案

是的,可以溢出;如果数据包中偏移量 4 处的值大于 128,则会溢出 hwaddr 中的 addr 字段。

关于c - memcpy 溢出边界利用? (破坏堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5236124/

相关文章:

c - 使用命名管道的进程间通信

c++ - 我如何创建一堆多维数组

java - Mapstruct java.util.Stack 转换

html - 溢出隐藏,显示: table and border-radius in Internet Explorer(all versions)

c - 在 c 中的结构数组中获取空​​值,释放不当

c - C 中的父子进程通过公共(public)文件进行通信

c - 如何修复语言环境?

c++ - 分段堆栈是否可以与其他库自由使用

c++ - C++程序中浮点溢出的诊断

html - 溢出:滚动属性不包括溢出中的背景