Segfault在使用sprintf

时间:2011-09-09 11:48:01

标签: string printf

我试图从数据包有效负载读取其用户代理。

我在数据包有效负载中搜索“User-Agent”,并且从那时开始复制“User-Agent”出现和之后第一次出现'\ n'之间的字符数。这是我的代码:

sprintf(
   stat,"%.*s\0",
   strstr(strstr(p->data, "User-Agent:"),"\n") - strstr(p->data, "User-Agent:"),
   strstr(p->data, "User-Agent: ")
);

麻烦的是,对于很多数据包,这会导致seg错误。我很抱歉这种愚蠢的写作方式;如果你知道更好的写作方式(或格式化),请告诉我。

1 个答案:

答案 0 :(得分:0)

为什么要编写如此复杂的代码?指针关节炎可能最终指向会产生seg故障的东西。考虑重构代码。