c vulnerability
This code has a bug that can be exploited to change the return address on the stack .
could you help me to find it .

    #define SIZE 128
    int main(int argc, char *argv[])
    {
    unsigned char b[SIZE]; 
    unsigned int i;
    if (argc != 6) {
    printf("Usage: %s index arg1 arg2 arg3 arg4\n", argv[0]);
    exit(EXIT_FAILURE);
    }
    i = atoi(argv[1]);
    b[i] = atoi(argv[2]);
    b[++i] = atoi(argv[3]);
    b[++i] = atoi(argv[4]);
    b[++i] = atoi(argv[5]);
    return (0);
    }

c vulnerability
===

This code has a bug that can be exploited to change the return address on the stack .
could you help me to find it .

    #define SIZE 128
    int main(int argc, char *argv[])
    {
    unsigned char b[SIZE]; 
    unsigned int i;
    if (argc != 6) {
    printf("Usage: %s index arg1 arg2 arg3 arg4\n", argv[0]);
    exit(EXIT_FAILURE);
    }
    i = atoi(argv[1]);
    b[i] = atoi(argv[2]);
    b[++i] = atoi(argv[3]);
    b[++i] = atoi(argv[4]);
    b[++i] = atoi(argv[5]);
    return (0);
    }
