OSVR / SteamVR-OSVR

An OSVR plugin for SteamVR, providing SteamVR support for OSVR HMDs.
Apache License 2.0
138 stars 57 forks source link

test_hmd_driver has null pointer as driver_host, but gets dereferenced later #78

Open ChristophHaag opened 8 years ago

ChristophHaag commented 8 years ago

Description of issue

Second argument here https://github.com/OSVR/SteamVR-OSVR/blob/620517d327dff246ea0b94c01036409f27b7b853/src/test_hmd_driver.cpp#L81 is driver_host and a null pointer. It gets passed around a bit and then dereferenced here: https://github.com/OSVR/SteamVR-OSVR/blob/620517d327dff246ea0b94c01036409f27b7b853/src/OSVRTrackedDevice.cpp#L63

Program received signal SIGSEGV, Segmentation fault.
OSVRTrackedDevice::OSVRTrackedDevice (this=0x5555557b2400, context=..., driver_host=0x0, driver_log=0x0) at /home/chris/build/osvr-steamvr-git/src/osvr-steamvr/src/OSVRTrackedDevice.cpp:63
63          settings_ = std::make_unique<Settings>(driver_host->GetSettings(vr::IVRSettings_Version));
(gdb) bt full
#0  OSVRTrackedDevice::OSVRTrackedDevice (this=0x5555557b2400, context=..., driver_host=0x0, driver_log=0x0)
    at /home/chris/build/osvr-steamvr-git/src/osvr-steamvr/src/OSVRTrackedDevice.cpp:63
No locals.
#1  0x00007ffff7bd0f8a in std::make_unique<OSVRTrackedDevice, osvr::clientkit::ClientContext&, vr::IServerDriverHost*&> ()
    at /home/chris/build/osvr-steamvr-git/src/osvr-steamvr/vendor/libcxx/include/make_unique_impl.h:47
No locals.
#2  ServerDriver_OSVR::Init (this=0x7ffff7dd85c0 <g_ServerDriverOSVR>, driver_log=<optimized out>, driver_host=0x0, user_driver_config_dir=<optimized out>,
    driver_install_dir=<optimized out>) at /home/chris/build/osvr-steamvr-git/src/osvr-steamvr/src/ServerDriver_OSVR.cpp:52
No locals.
#3  0x00005555555554cd in main (argc=<optimized out>, argv=<optimized out>) at /home/chris/build/osvr-steamvr-git/src/osvr-steamvr/src/test_hmd_driver.cpp:81
        error = <optimized out>
        tracker_count = <optimized out>
        driver_init_return = 0
        tracker_driver = 0x7ffff7dd85c0 <g_ServerDriverOSVR>
        logger = {<vr::IDriverLog> = {_vptr.IDriverLog = 0x555555756d80 <vtable for Logger+16>}, <No data fields>}
cjlong1213 commented 7 years ago

hi, I also met this problem. Anyone who had solved this?

cjlong1213 commented 7 years ago

@ChristophHaag hi, do you solve this issue? would you please share to me?tks.