lvc / abi-compliance-checker

A tool for checking backward API/ABI compatibility of a C/C++ library
https://lvc.github.io/abi-compliance-checker/
GNU Lesser General Public License v2.1
621 stars 76 forks source link

rbx register instead of rbp - Applications will read the wrong memory block instead of the parameter value. #117

Open bryancall opened 2 years ago

bryancall commented 2 years ago

I ran this program over our API across versions and I am seeing these error show up for a few or our APIs. Here is a link to the report: https://trafficserver.apache.org/compat_reports/traffic_server/9.0.x_to_9.1.x/compat_report.html#Symbol_Binary_Problems_High

I was able to git rid of the rpb errors by compiling our binary with -fno-omit-frame-pointer, but I was still seeing issues about the rbx register. Our API C code is statically linked into the server's binary to give some context.

Is this really an issue, sounds like it is, and if so is there a way I could fix this problem?

bryancall commented 2 years ago

Changing the API C code to be included into a .so I am seeing the error change from: The parameter mutexp became passed in rbx register instead of rbp. to: The parameter mutexp became passed in rbx register instead of r12.