Analyzing the ELF file /usr/bin/curl (Ubuntu 14.04, 64bit), I stumbled upon a strange function (see image). It is called regularly via call sub_403D90 but does not end with a ret. Instead, it jumps to a label / another function (sub_403C90).This is strange because there seems to be no return to sub_403D90, as from sub_403C90 onwards in the control flow, there are no jumps but only rets.Can someone explain to me why this is? Does it makes sense?
Strange function in IDA Pro: Only one basic block ending with a jmp sub_xxxxxx (instead of a ret)
ida;disassembly;idapython;compilers;functions
This is just a bit of optimization. A call xxxx followed by a ret can be optimized to a jmp xxxx.