Merge lp:~mir-team/mir/fix-1465883-and-1341490 into lp:mir
Status: | Rejected |
---|---|
Rejected by: | Alan Griffiths |
Proposed branch: | lp:~mir-team/mir/fix-1465883-and-1341490 |
Merge into: | lp:mir |
Diff against target: |
32 lines (+3/-3) 3 files modified
debian/control (+1/-1) debian/libmirprotobuf1.install (+1/-1) src/protobuf/CMakeLists.txt (+1/-1) |
To merge this branch: | bzr merge lp:~mir-team/mir/fix-1465883-and-1341490 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alan Griffiths | Disapprove | ||
PS Jenkins bot (community) | continuous-integration | Needs Fixing | |
Review via email: mp+262181@code.launchpad.net |
Commit message
Bump the libmirprotobuf ABI from 0 to 1. Technically we've broken the
ABI plenty of times without bumping. But it becomes a real problem in
the wild when we do a release that also bumps the client ABI.
If you have a newer libmirprotobuf0 used by both an older libmirclient8
and newer libmirclient9 then only libmirclient9 will know the correct
object sizes -- objects that we instantiate on the stack. Existing
clients in that case that still use libmirclient8 will then be
instantiating message objects with the wrong size/structure on the
stack which leads to stack corruption and client crashes.
(LP: #1465883) (LP: #1341490)
And we do wish to keep instantiating message objects on the stack
because that helps with IPC/RPC performance not touching the heap
on every message.
Also keep in mind mirprotobuf is a "private" ABI. We are free to bump
it without needing to bump the public ABIs like libmirclient. Because
clients have no direct dynamic linkage to anything in libmirprotobuf.
.
Unmerged revisions
- 2674. By Daniel van Vugt
-
Bump libmirprotobuf ABI from 0 to 1
FAILED: Continuous integration, rev:2674 jenkins. qa.ubuntu. com/job/ mir-ci/ 4121/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/2882 jenkins. qa.ubuntu. com/job/ mir-clang- wily-amd64- build/395 jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/2830/ console jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 277 jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 277/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 2830 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 2830/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- mako/5660/ console s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 21243
http://
Executed test runs:
SUCCESS: http://
SUCCESS: http://
FAILURE: http://
SUCCESS: http://
deb: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/4121/ rebuild
http://