diff --git a/mavros/400949c/400949c.bug b/mavros/400949c/400949c.bug index d3ef6a58..10dfdabe 100644 --- a/mavros/400949c/400949c.bug +++ b/mavros/400949c/400949c.bug @@ -3,18 +3,18 @@ id: 400949c title: Segmentation fault due to incorrect resource sharing between threads description: > - MAVROS (asynchronously) runs its TCP, UDP, and serial connection - services using dedicated threads. The "utils::set_thread_name" - function is used to assign appropriate names to each of those - threads (e.g., "MAVConnTCPs981"). "utils::set_thread_name" - accepts an std::thread instance and a string, and attempts to - assign the name given by the string to the thread using - "pthread_setname_np". However, a segmentation fault occurs when - the faulty program is run. This is due to the std::thread - instance, "t", being incorrectly accessed from within the lambda - for the thread. To fix this issue, "pthread_self()" is used to - fetch a valid "pthread_t" instance for the current thread, - instead. + MAVROS (asynchronously) runs its TCP, UDP, and serial connection + services using dedicated threads. The "utils::set_thread_name" + function is used to assign appropriate names to each of those + threads (e.g., "MAVConnTCPs981"). "utils::set_thread_name" + accepts an std::thread instance and a string, and attempts to + assign the name given by the string to the thread using + "pthread_setname_np". However, a segmentation fault occurs when + the faulty program is run. This is due to the std::thread + instance, "t", being incorrectly accessed from within the lambda + for the thread. To fix this issue, "pthread_self()" is used to + fetch a valid "pthread_t" instance for the current thread, + instead. classification: "CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') #RESOURCE" keywords: - segmentation fault @@ -56,9 +56,15 @@ fix: - libmavconn/test/test_hang.cpp languages: - C++ - time: 2016-06-06 (00:00) + time: 2016-06-06T19:51:43+03:00 time-machine: ros_distro: kinetic ros_pkgs: - mavros - datetime: 2016-06-06 + datetime: 2016-06-06T19:51:43+03:00 +bugzoo: + is-build-failure: false + bug-commit: b9bece1437dfe50c2d6855efd166ea2def2733ea + fix-commit: 400949c5b152a888a8b4fd94b085bbfc2092f146 + fork-urls: + - https://github.com/robust-rosin/mavros diff --git a/mavros/400949c/deps.rosinstall b/mavros/400949c/deps.rosinstall new file mode 100644 index 00000000..d5f0f5a9 --- /dev/null +++ b/mavros/400949c/deps.rosinstall @@ -0,0 +1,241 @@ +- tar: + local-name: actionlib + uri: https://github.com/ros-gbp/actionlib-release/archive/release/kinetic/actionlib/1.11.5-0.tar.gz + version: actionlib-release-release-kinetic-actionlib-1.11.5-0 +- tar: + local-name: angles + uri: https://github.com/ros-gbp/geometry_angles_utils-release/archive/release/kinetic/angles/1.9.10-0.tar.gz + version: geometry_angles_utils-release-release-kinetic-angles-1.9.10-0 +- tar: + local-name: catkin + uri: https://github.com/ros-gbp/catkin-release/archive/release/kinetic/catkin/0.7.1-0.tar.gz + version: catkin-release-release-kinetic-catkin-0.7.1-0 +- tar: + local-name: class_loader + uri: https://github.com/ros-gbp/class_loader-release/archive/release/kinetic/class_loader/0.3.3-0.tar.gz + version: class_loader-release-release-kinetic-class_loader-0.3.3-0 +- tar: + local-name: cmake_modules + uri: https://github.com/ros-gbp/cmake_modules-release/archive/release/kinetic/cmake_modules/0.4.0-1.tar.gz + version: cmake_modules-release-release-kinetic-cmake_modules-0.4.0-1 +- tar: + local-name: common_msgs/actionlib_msgs + uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/actionlib_msgs/1.12.4-0.tar.gz + version: common_msgs-release-release-kinetic-actionlib_msgs-1.12.4-0 +- tar: + local-name: common_msgs/diagnostic_msgs + uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/diagnostic_msgs/1.12.4-0.tar.gz + version: common_msgs-release-release-kinetic-diagnostic_msgs-1.12.4-0 +- tar: + local-name: common_msgs/geometry_msgs + uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/geometry_msgs/1.12.4-0.tar.gz + version: common_msgs-release-release-kinetic-geometry_msgs-1.12.4-0 +- tar: + local-name: common_msgs/nav_msgs + uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/nav_msgs/1.12.4-0.tar.gz + version: common_msgs-release-release-kinetic-nav_msgs-1.12.4-0 +- tar: + local-name: common_msgs/sensor_msgs + uri: https://github.com/ros-gbp/common_msgs-release/archive/release/kinetic/sensor_msgs/1.12.4-0.tar.gz + version: common_msgs-release-release-kinetic-sensor_msgs-1.12.4-0 +- tar: + local-name: diagnostics/diagnostic_updater + uri: https://github.com/ros-gbp/diagnostics-release/archive/release/kinetic/diagnostic_updater/1.8.9-0.tar.gz + version: diagnostics-release-release-kinetic-diagnostic_updater-1.8.9-0 +- tar: + local-name: gencpp + uri: https://github.com/ros-gbp/gencpp-release/archive/release/kinetic/gencpp/0.5.4-0.tar.gz + version: gencpp-release-release-kinetic-gencpp-0.5.4-0 +- tar: + local-name: geneus + uri: https://github.com/tork-a/geneus-release/archive/release/kinetic/geneus/2.2.5-1.tar.gz + version: geneus-release-release-kinetic-geneus-2.2.5-1 +- tar: + local-name: genlisp + uri: https://github.com/ros-gbp/genlisp-release/archive/release/kinetic/genlisp/0.4.15-0.tar.gz + version: genlisp-release-release-kinetic-genlisp-0.4.15-0 +- tar: + local-name: genmsg + uri: https://github.com/ros-gbp/genmsg-release/archive/release/kinetic/genmsg/0.5.7-1.tar.gz + version: genmsg-release-release-kinetic-genmsg-0.5.7-1 +- tar: + local-name: gennodejs + uri: https://github.com/RethinkRobotics-release/gennodejs-release/archive/release/kinetic/gennodejs/1.0.3-0.tar.gz + version: gennodejs-release-release-kinetic-gennodejs-1.0.3-0 +- tar: + local-name: genpy + uri: https://github.com/ros-gbp/genpy-release/archive/release/kinetic/genpy/0.6.0-0.tar.gz + version: genpy-release-release-kinetic-genpy-0.6.0-0 +- tar: + local-name: geometry/eigen_conversions + uri: https://github.com/ros-gbp/geometry-release/archive/release/kinetic/eigen_conversions/1.11.8-0.tar.gz + version: geometry-release-release-kinetic-eigen_conversions-1.11.8-0 +- tar: + local-name: geometry2/tf2 + uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2/0.5.13-0.tar.gz + version: geometry2-release-release-kinetic-tf2-0.5.13-0 +- tar: + local-name: geometry2/tf2_msgs + uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_msgs/0.5.13-0.tar.gz + version: geometry2-release-release-kinetic-tf2_msgs-0.5.13-0 +- tar: + local-name: geometry2/tf2_py + uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_py/0.5.13-0.tar.gz + version: geometry2-release-release-kinetic-tf2_py-0.5.13-0 +- tar: + local-name: geometry2/tf2_ros + uri: https://github.com/ros-gbp/geometry2-release/archive/release/kinetic/tf2_ros/0.5.13-0.tar.gz + version: geometry2-release-release-kinetic-tf2_ros-0.5.13-0 +- tar: + local-name: mavlink + uri: https://github.com/mavlink/mavlink-gbp-release/archive/release/kinetic/mavlink/2016.5.20-0.tar.gz + version: mavlink-gbp-release-release-kinetic-mavlink-2016.5.20-0 +- tar: + local-name: mavros/libmavconn + uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/libmavconn/0.17.3-0.tar.gz + version: mavros-release-release-kinetic-libmavconn-0.17.3-0 +- tar: + local-name: mavros/mavros_msgs + uri: https://github.com/mavlink/mavros-release/archive/release/kinetic/mavros_msgs/0.17.3-0.tar.gz + version: mavros-release-release-kinetic-mavros_msgs-0.17.3-0 +- tar: + local-name: message_generation + uri: https://github.com/ros-gbp/message_generation-release/archive/release/kinetic/message_generation/0.4.0-0.tar.gz + version: message_generation-release-release-kinetic-message_generation-0.4.0-0 +- tar: + local-name: message_runtime + uri: https://github.com/ros-gbp/message_runtime-release/archive/release/kinetic/message_runtime/0.4.12-0.tar.gz + version: message_runtime-release-release-kinetic-message_runtime-0.4.12-0 +- tar: + local-name: orocos_kinematics_dynamics/orocos_kdl + uri: https://github.com/smits/orocos-kdl-release/archive/release/kinetic/orocos_kdl/1.3.0-0.tar.gz + version: orocos-kdl-release-release-kinetic-orocos_kdl-1.3.0-0 +- tar: + local-name: pluginlib + uri: https://github.com/ros-gbp/pluginlib-release/archive/release/kinetic/pluginlib/1.10.2-0.tar.gz + version: pluginlib-release-release-kinetic-pluginlib-1.10.2-0 +- tar: + local-name: ros/rosbuild + uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosbuild/1.13.1-0.tar.gz + version: ros-release-release-kinetic-rosbuild-1.13.1-0 +- tar: + local-name: ros/rosclean + uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosclean/1.13.1-0.tar.gz + version: ros-release-release-kinetic-rosclean-1.13.1-0 +- tar: + local-name: ros/roslang + uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslang/1.13.1-0.tar.gz + version: ros-release-release-kinetic-roslang-1.13.1-0 +- tar: + local-name: ros/roslib + uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/roslib/1.13.1-0.tar.gz + version: ros-release-release-kinetic-roslib-1.13.1-0 +- tar: + local-name: ros/rosunit + uri: https://github.com/ros-gbp/ros-release/archive/release/kinetic/rosunit/1.13.1-0.tar.gz + version: ros-release-release-kinetic-rosunit-1.13.1-0 +- tar: + local-name: ros_comm/message_filters + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/message_filters/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-message_filters-1.12.2-0 +- tar: + local-name: ros_comm/rosbag + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosbag-1.12.2-0 +- tar: + local-name: ros_comm/rosbag_storage + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosbag_storage/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosbag_storage-1.12.2-0 +- tar: + local-name: ros_comm/rosconsole + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosconsole/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosconsole-1.12.2-0 +- tar: + local-name: ros_comm/roscpp + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roscpp/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-roscpp-1.12.2-0 +- tar: + local-name: ros_comm/rosgraph + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosgraph/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosgraph-1.12.2-0 +- tar: + local-name: ros_comm/roslaunch + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslaunch/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-roslaunch-1.12.2-0 +- tar: + local-name: ros_comm/roslz4 + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/roslz4/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-roslz4-1.12.2-0 +- tar: + local-name: ros_comm/rosmaster + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosmaster/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosmaster-1.12.2-0 +- tar: + local-name: ros_comm/rosnode + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosnode/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosnode-1.12.2-0 +- tar: + local-name: ros_comm/rosout + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosout/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosout-1.12.2-0 +- tar: + local-name: ros_comm/rosparam + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rosparam/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rosparam-1.12.2-0 +- tar: + local-name: ros_comm/rospy + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rospy/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rospy-1.12.2-0 +- tar: + local-name: ros_comm/rostest + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostest/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rostest-1.12.2-0 +- tar: + local-name: ros_comm/rostopic + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/rostopic/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-rostopic-1.12.2-0 +- tar: + local-name: ros_comm/topic_tools + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/topic_tools/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-topic_tools-1.12.2-0 +- tar: + local-name: ros_comm/xmlrpcpp + uri: https://github.com/ros-gbp/ros_comm-release/archive/release/kinetic/xmlrpcpp/1.12.2-0.tar.gz + version: ros_comm-release-release-kinetic-xmlrpcpp-1.12.2-0 +- tar: + local-name: ros_comm_msgs/rosgraph_msgs + uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/rosgraph_msgs/1.11.2-0.tar.gz + version: ros_comm_msgs-release-release-kinetic-rosgraph_msgs-1.11.2-0 +- tar: + local-name: ros_comm_msgs/std_srvs + uri: https://github.com/ros-gbp/ros_comm_msgs-release/archive/release/kinetic/std_srvs/1.11.2-0.tar.gz + version: ros_comm_msgs-release-release-kinetic-std_srvs-1.11.2-0 +- tar: + local-name: rosconsole_bridge + uri: https://github.com/ros-gbp/rosconsole_bridge-release/archive/release/kinetic/rosconsole_bridge/0.4.4-0.tar.gz + version: rosconsole_bridge-release-release-kinetic-rosconsole_bridge-0.4.4-0 +- tar: + local-name: roscpp_core/cpp_common + uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/cpp_common/0.6.0-0.tar.gz + version: roscpp_core-release-release-kinetic-cpp_common-0.6.0-0 +- tar: + local-name: roscpp_core/roscpp_serialization + uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_serialization/0.6.0-0.tar.gz + version: roscpp_core-release-release-kinetic-roscpp_serialization-0.6.0-0 +- tar: + local-name: roscpp_core/roscpp_traits + uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/roscpp_traits/0.6.0-0.tar.gz + version: roscpp_core-release-release-kinetic-roscpp_traits-0.6.0-0 +- tar: + local-name: roscpp_core/rostime + uri: https://github.com/ros-gbp/roscpp_core-release/archive/release/kinetic/rostime/0.6.0-0.tar.gz + version: roscpp_core-release-release-kinetic-rostime-0.6.0-0 +- tar: + local-name: rospack + uri: https://github.com/ros-gbp/rospack-release/archive/release/kinetic/rospack/2.3.0-0.tar.gz + version: rospack-release-release-kinetic-rospack-2.3.0-0 +- tar: + local-name: std_msgs + uri: https://github.com/ros-gbp/std_msgs-release/archive/release/kinetic/std_msgs/0.5.10-0.tar.gz + version: std_msgs-release-release-kinetic-std_msgs-0.5.10-0 + diff --git a/mavros/400949c/test.sh b/mavros/400949c/test.sh new file mode 100755 index 00000000..b65c318b --- /dev/null +++ b/mavros/400949c/test.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo "missing test"