Comment 0 for bug 1557634

Revision history for this message
Michael Terry (mterry) wrote : Crashes when given an invalid keymap

I foolishly tested unity8's keymap switching with the keymap "zh" (I should have used "cn").

But I noticed that libmirclient crashed when I switched to "zh". While this isn't a supported use case, we shouldn't crash.

Here's a non-debugful stack trace:

#0 0xb61379a6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
(gdb) bt
#0 0xb61379a6 in ?? () from /lib/arm-linux-gnueabihf/libc.so.6
#1 0xb614562e in raise () from /lib/arm-linux-gnueabihf/libc.so.6
#2 0xb6146332 in abort () from /lib/arm-linux-gnueabihf/libc.so.6
#3 0xb6283120 in __gnu_cxx::__verbose_terminate_handler() ()
   from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#4 0xb6281950 in ?? () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#5 0xb62819a6 in std::terminate() ()
   from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#6 0xb6281bc6 in __cxa_throw ()
   from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#7 0xb3d726ec in ?? () from /usr/lib/arm-linux-gnueabihf/libmirclient.so.9
#8 0xb3d857f2 in mir::events::make_event(mir::IntWrapper<mir::frontend::detail::SessionsSurfaceIdTag, int> const&, long long, std::string const&, std::string const&, std::string const&, std::string const&) ()
   from /usr/lib/arm-linux-gnueabihf/libmirclient.so.9
#9 0xb3e3e5e2 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#10 0xb3e24d1e in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#11 0xb3e2aeb0 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#12 0xb3e26870 in ?? () from /usr/lib/arm-linux-gnueabihf/libmirserver.so.38
#13 0xaa6476ce in qtmir::MirSurface::setKeymap(QString const&, QString const&)