Format String Stack View main char userinput100 char

  • Slides: 10
Download presentation
Format String Stack View main() { char user_input[100]; char buffer[100]; int x; … /*get

Format String Stack View main() { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); } © 2002, Ed Skoudis

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Fill Direction . . . Value to Change

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Fill Direction int x Buffer (100 char). . . Value to Change

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer to Buffer sizeof buffer Pointer to user_input int x Buffer (100 char). . . Value to Change Fill Direction

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x Buffer (100 char). . . Value to Change “c 0 faffbf%d%n”

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x c 0 faffbf Buffer (100 char). . . Value to Change “c 0 faffbf%d%n”

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x c 0 faffbf value of x Buffer (100 char) . . . Value to Change “c 0 faffbf%d%n”

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x c 0 faffbf value of x Buffer (100 char) . . . Value to Change “c 0 faffbf%d%n”

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x c 0 faffbf value of x Buffer (100 char). . . 5 “c 0 faffbf%d%n”

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int

Format String Stack View main() Bottom of Memory { char user_input[100]; char buffer[100]; int x; … /*get user_input*/ … snprintf(buffer, sizeof buffer, user_input); Top of Memory } © 2002, Ed Skoudis . . . Return Pointer Fill Direction Pointer to Buffer sizeof buffer Pointer to user_input int x c 0 faffbf value of x Buffer (100 char). . . 259 “c 0 faffbf%. 255 d%n”