<div dir="ltr"><div dir="ltr">Matt Caswell <<a href="mailto:matt@openssl.org">matt@openssl.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">PR11589 makes a change to the public API function<br>
`SSL_set_record_padding_callback` to change its return type from void to<br>
int:<br>
<br>
<a href="https://github.com/openssl/openssl/pull/11589" rel="noreferrer" target="_blank">https://github.com/openssl/openssl/pull/11589</a><br>
<br>
This is technically an API break - but it doesn't seem too serious. It's<br>
possible, I suppose, that existing applications that use this will fail<br>
to spot the error return since this function can now fail. The function<br>
itself was only recently added (in 1.1.1), and I suspect real-world<br>
usage is very small (or possibly nil).<br>
<br>
Is this considered ok?<br></blockquote><div><br></div><div><div>This kind of change might cause memory unsafety issues unless the application is recompiled. At least, it's worth investigating that.</div><div><br></div><div></div></div><div>On most platforms the ABI of a function that returns `void` and one that returns `int` is the same, from the perspective of a caller that doesn't expect or use the return value. I seem to vaguely remember in the past that there was at least one common platform where that isn't true though. Unfortunately I cannot remember which one it is. I also don't remember if it is problematic to change from "int" to "void" or "void" to "int" or both.</div><div><br></div><div>Anyway, my point is that you should consider this an ABI-breaking change, not just an API breaking one.</div><div><br></div><div>Cheers,</div><div>Brian</div></div></div>