exploit3.c: (in function get_sp) exploit3.c:16:2: Path with no return in function declared to return unsigned long int There is a path through a function declared to return a value on which there is no return statement. This means the execution may fall through without returning a meaningful result to the caller. (Use -noret to inhibit warning) exploit3.c:18:6: Function main declared to return void, should return int The function main does not match the expected type. (Use -maintype to inhibit warning) exploit3.c: (in function main) exploit3.c:27:23: Function malloc expects arg 1 to be size_t gets int: bsize To allow arbitrary integral types to match any integral type, use +matchanyintegral. exploit3.c:32:3: Assignment of unsigned long int to long int: addr = get_sp() - offset To ignore signs in type comparisons use +ignoresigns exploit3.c:33:35: Format argument 1 to printf (%x) expects unsigned int gets long int: addr exploit3.c:33:29: Corresponding format code exploit3.c:41:5: Assignment of int to char: buff[i] = 0x90 To make char and int types equivalent, use +charint. exploit3.c:44:15: Operands of < have incompatible types (int, size_t): i < strlen(shellcode) exploit3.c:50:3: Unrecognized identifier: putenv Identifier used in code has not been declared. (Use -unrecog to inhibit warning) exploit3.c:51:3: Return value (type int) ignored: system("/bin/bash") Result returned by function call is not used. If this is intended, can cast result to (void) to eliminate message. (Use -retvalint to inhibit warning) exploit3.c:52:2: Last reference buff to owned storage ptr not released before return A memory leak has been detected. Only-qualified storage is not released before the last reference to it is lost. (Use -mustfreeonly to inhibit warning) exploit3.c:43:3: Original reference lost exploit3.c:9:6: Variable exported but not used outside exploit3: shellcode A declaration is exported, but not used outside this module. Declaration can use static qualifier. (Use -exportlocal to inhibit warning) exploit3.c:14:15: Function exported but not used outside exploit3: get_sp exploit3.c:16:1: Definition of get_sp