The following code runs on a 32-bit x86 based Linux workstationj….

Question Answered step-by-step The following code runs on a 32-bit x86 based Linux workstationj…. The following code runs on a 32-bit x86 based Linux workstationj. The stack grow downwards, and the C compiler allocates four bytes for the saved frame pointer register in the star of the stack frame(activation record) of a function. You can assume that no extra space is allocated for saved registers and no alignment/padding bytes are added to the activation record.Image transcription text1: struct bar { unsigned int a; 2: unsigned int b; 3: int c; 4: union foobar { struct bar arr [20] ; ARG 3 (data) 5: charbuf [160] ; }; ARG 2 (p) 6: int func (int i, char* p, int data) { ARG 1 () 7: union foobar x; 8: if (((i20))&& p) RETURN ADDRESS 9: strncpy (&x . buf [0] , p, SAVED FRAME POINTER RE… Show more… Show more In the context of this code, which type of attack can happen ? a- Unterminated null-terminated stringb- buffer overflowc- integer overflowsd- race condition Engineering & Technology Computer Science CMIS MISC Share QuestionEmailCopy link Comments (0)