Running the tools, eg. garmin_get_info results in segmentation fault

Bug #1612987 reported by Martin Bøgelund
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
garmin-forerunner-tools (Debian)
Fix Released
Unknown
garmin-forerunner-tools (Ubuntu)
Confirmed
Medium
Unassigned

Bug Description

Issue seems to have occurred and been fixed in Debian:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=816314

---

Information
1)
$ lsb_release -rd
Description: Ubuntu 16.04.1 LTS
Release: 16.04

2)
$ apt-cache policy garmin-forerunner-tools
garmin-forerunner-tools:
  Installed: 0.10repacked-8
  Candidate: 0.10repacked-8
  Version table:
 *** 0.10repacked-8 500
        500 http://dk.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        100 /var/lib/dpkg/status
3)
When I run garmin_get_info, I expect it to load my running track from my Garmin Forerunner 305. It used to work in Ubuntu 14.04.
4)
$ garmin_get_info
Segmentation fault (core dumped)

---

$ garmin_get_info -v
[garmin] libusb_init succeeded
[garmin] found VID 091e, PID 0003[garmin] libusb_open = 0x14f3d90
[garmin] libusb_set_configuration[1] succeeded
[garmin] libusb_claim_interface[0] succeeded
[garmin] libusb_get_config_descriptor_by_value succeeded
[garmin] intr IN = 1
[garmin] bulk OUT = 2
[garmin] bulk IN = 3
<write type="0x00" id="0x0005" size="0"/>
<write type="0x00" id="0x0005" size="0"/>
<write type="0x00" id="0x0005" size="0"/>
<write type="0x14" id="0x00fe" size="0"/>
<garmin_unit id="0">
 <garmin_product id="0" software_version="0.00">
  <product_description>(null)</product_description>
 </garmin_product>
 <garmin_protocols>
  <garmin_physical protocol="P000"/>
  <garmin_link protocol="L000"/>
  <garmin_command protocol="A000"/>
 </garmin_protocols>
</garmin_unit>

---

$ valgrind garmin_get_info
==7921== Memcheck, a memory error detector
==7921== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==7921== Using Valgrind-3.11.0 and LibVEX; rerun with -h for copyright info
==7921== Command: garmin_get_info
==7921==
==7921== Use of uninitialised value of size 8
==7921== at 0x4E3C834: garmin_open (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x4E455AF: garmin_init (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x400774: ??? (in /usr/bin/garmin_get_info)
==7921== by 0x529582F: (below main) (libc-start.c:291)
==7921==
==7921== Invalid read of size 8
==7921== at 0x4E3C838: garmin_open (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x4E455AF: garmin_init (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x400774: ??? (in /usr/bin/garmin_get_info)
==7921== by 0x529582F: (below main) (libc-start.c:291)
==7921== Address 0xffffffff00000002 is not stack'd, malloc'd or (recently) free'd
==7921==
==7921==
==7921== Process terminating with default action of signal 11 (SIGSEGV)
==7921== Access not within mapped region at address 0xFFFFFFFF00000002
==7921== at 0x4E3C838: garmin_open (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x4E455AF: garmin_init (in /usr/lib/libgarmintools.so.4.2.0)
==7921== by 0x400774: ??? (in /usr/bin/garmin_get_info)
==7921== by 0x529582F: (below main) (libc-start.c:291)
==7921== If you believe this happened as a result of a stack
==7921== overflow in your program's main thread (unlikely but
==7921== possible), you can try to increase the size of the
==7921== main thread stack using the --main-stacksize= flag.
==7921== The main thread stack size used in this run was 8388608.
==7921==
==7921== HEAP SUMMARY:
==7921== in use at exit: 25,232 bytes in 52 blocks
==7921== total heap usage: 3,140 allocs, 3,088 frees, 1,913,408 bytes allocated
==7921==
==7921== LEAK SUMMARY:
==7921== definitely lost: 0 bytes in 0 blocks
==7921== indirectly lost: 0 bytes in 0 blocks
==7921== possibly lost: 360 bytes in 4 blocks
==7921== still reachable: 24,872 bytes in 48 blocks
==7921== suppressed: 0 bytes in 0 blocks
==7921== Rerun with --leak-check=full to see details of leaked memory
==7921==
==7921== For counts of detected and suppressed errors, rerun with: -v
==7921== Use --track-origins=yes to see where uninitialised values come from
==7921== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
Killed

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: garmin-forerunner-tools 0.10repacked-8
ProcVersionSignature: Ubuntu 4.4.0-34.53-generic 4.4.15
Uname: Linux 4.4.0-34-generic x86_64
NonfreeKernelModules: nvidia
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
CurrentDesktop: Unity
Date: Sat Aug 13 22:30:39 2016
InstallationDate: Installed on 2014-01-04 (952 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
SourcePackage: garmin-forerunner-tools
UpgradeStatus: Upgraded to xenial on 2016-07-30 (14 days ago)

Revision history for this message
Martin Bøgelund (mbogelund) wrote :
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in garmin-forerunner-tools (Ubuntu):
status: New → Confirmed
Changed in garmin-forerunner-tools (Debian):
status: Unknown → Fix Released
Revision history for this message
David Wright (davidw88) wrote :

For info of anyone else having these issues:

I was one of the people that confirmed this was affecting my installation as well (16.04 Xubuntu). As no fix for 16.04 is confirmed yet, I uninstalled garmin-forerunner-tools and then installed the deb for 0.10repacked-10 from the Yakkety package at https://launchpad.net/ubuntu/+source/garmin-forerunner-tools.

This appears to work with no issues on my system.

Changed in garmin-forerunner-tools (Ubuntu):
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.