0
点赞
收藏
分享

微信扫一扫

【C语言】printf函数陷阱


URL被编码/义之后(转换工具地址:​​URL在线编码转换工具​​),原始URL字符串内容被改变了,例如:

&fm=217&app=126&f=JPEG?w=363&h=225&s=9

为:

%26fm%3D217%26app%3D126%26f%3DJPEG%3Fw%3D363%26h%3D225%26s%3D9

可以发现其中“&s=9”被成了“​%26s​%3D9”,注意,“​%26s​”在printf格式化打印函数看来是一个参数,表示打印一个字符串,一共打印26个字符,不够的补空格。但是实际上这个字符串根本不存在,但是printf函数还是会在可变参数列表里面找一个参数作为要打印的字符串地址,这就是个野指针了,很容易导致死机。

那么非要打印这个编码后的URL地址怎么办呢?反编码回来得了。


举报

相关推荐

0 条评论