使用strtol的易受攻击的程序

时间:2016-09-14 10:48:02

标签: strtol

当我读到涉及strtol的易受攻击的C程序时,我遇到了这个问题。以下是代码

#include <stdio.h>
void f (int i, int j) {
    int a[50];
    a[i] += j;
}
int main (int argc, char *argv[]) {
    int x = 10, y, z;
    if (argc > 1) {
        y = strtol (argv[1], NULL, 10);
        z = strtol (argv[2], NULL, 10);
        f(y, z);
        x = 20;
        printf ("x=%d\n", x);
    }
    return 0;
}

调用strtol(s, NULL, 10)返回写为的整数 十进制表示法中的字符串s。应该给出什么输入来将x值打印为10以及提供这些输入背后的想法是什么?

0 个答案:

没有答案