下面是一个存在栈溢出缺陷的密码验证程序的源代码。 #include
#include
#include
#define PASSWORD "1234567" int verify_password (char *password) { int authenticated; char buffer[8]; // 添加本地缓存测试溢出 authenticated=strcmp(password,PASSWORD); strcpy(buffer,password); // 在这里会发生溢出 return authenticated; } main() { int valid_flag=0; char password[1024]; while(1) { printf("please input password: "); scanf("%s",password); valid_flag = verify_password(password); if(valid_flag) { printf("incorrect password!\n\n"); } else { printf("Congratulation! You have passed the verification!\n"); break; } } } 当输入字符串“7654321”,执行到int verify_password (char *password),栈帧状态如下图所示。 请填写图中(1) ~ (6)的内容。