Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash during garmintool download #17

Open
phako opened this issue Jun 22, 2020 · 1 comment
Open

Crash during garmintool download #17

phako opened this issue Jun 22, 2020 · 1 comment
Labels
bug Something isn't working

Comments

@phako
Copy link
Owner

phako commented Jun 22, 2020

Looks like some length is off. I can see the whole environment dumped in the packet, so probably array overflow

#0  0x00007f6937574f86 in garmin_print_packet (p=0x7ffdbb50dc00, dir=1, fp=0x7f69373db6a0 <_IO_2_1_stdout_>) at ../src/usb_comm.c:422
        i = 25588
        j = 4
        s = 771751936
        hex = " 00 00 00 00\000\066d 69 6e 74 6f 6f 6c 00 00 00 00 00", '\000' <repeats 79 times>
        dec = "____\000intool_____", '\000' <repeats 111 times>
#1  0x00007f6937574abe in garmin_read (garmin=0x7ffdbb512200, p=0x7ffdbb50dc00) at ../src/usb_comm.c:339
        r = 35
#2  0x00007f6937584347 in garmin_read_records2 (garmin=0x7ffdbb512200, pid1=Pid_Trk_Hdr, type1=data_D311, pid2=Pid_Trk_Data, type2=data_D304) at ../src/protocol.c:344
        d = 0x5582556879a0
        l = 0x5582556879c0
        p = {packet = {type = 0 '\000', reserved1 = 0 '\000', reserved2 = 0 '\000', reserved3 = 34 '"', id = "\000", reserved4 = 0 '\000', reserved5 = 24 '\030', size = "\000\000\000.", data = "l\037&\002;\v\a\366WN9\000\254\271An[\257Ey\377\000\000\000\375\177\000\000\000\026\370T\202U\000\000\200$Q\273\375\177", '\000' <repeats 18 times>, "\207Q[7i\177\000\000\005", '\000' <repeats 15 times>, "\220\340P\273\375\177\000\000\320\022W7i\177\000\000\060\340P\273\375\177\000\000n\313[7i\177\000\000\000\"Q\273\375\177\000\000!\242\347\372\000\000\000\000\002", '\000' <repeats 16 times>, "\"Q\273\375\177\000\000\200yhU\202U\000\000\377\000\000\000\000\000\000\000n\313[7i\177\000\000\000\"Q\273\375\177\000\000!\242\347\372\000\000\000\000\002\000\000\000\000\000\000\000"...}, data = "\000\000\000\"\000\000\000\030\000\000\000.l\037&\002;\v\a\366WN9\000\254\271An[\257Ey\377\000\000\000\375\177\000\000\000\026\370T\202U\000\000\200$Q\273\375\177", '\000' <repeats 18 times>, "\207Q[7i\177\000\000\005", '\000' <repeats 15 times>, "\220\340P\273\375\177\000\000\320\022W7i\177\000\000\060\340P\273\375\177\000\000n\313[7i\177\000\000\000\"Q\273\375\177\000\000!\242\347\372\000\000\000\000\002", '\000' <repeats 16 times>, "\"Q\273\375\177\000\000\200yhU\202U\000\000\377\000\000\000\000\000\000\000n\313[7i\177\000\000\000\"Q\273\375\177\000\000"...}
        link = link_L001
        expected = 13064
        got = 8646
        state = 2
        ppid = Pid_Trk_Data
#3  0x00007f6937584ea3 in garmin_read_a301 (garmin=0x7ffdbb512200) at ../src/protocol.c:723
        d = 0x0
#4  0x00007f6937584ec9 in garmin_read_a302 (garmin=0x7ffdbb512200) at ../src/protocol.c:741
No locals.
#5  0x00007f6937585164 in garmin_read_a1000 (garmin=0x7ffdbb512200) at ../src/protocol.c:888
        d = 0x55825567cd20
        l = 0x558255694930
#6  0x00007f6937585a24 in garmin_read_via (garmin=0x7ffdbb512200, protocol=appl_A1000) at ../src/protocol.c:1131
        data = 0x0
#7  0x00007f6937585d29 in garmin_get (garmin=0x7ffdbb512200, what=GET_RUNS) at ../src/protocol.c:1166
        data = 0x0
#8  0x00007f6937595304 in garmin_save_runs (garmin=0x7ffdbb512200) at ../src/run.c:266
        data = 0x0
        data0 = 0x0
        data1 = 0x0
        data2 = 0x0
        rlaps = 0x0
        rtracks = 0x0
        runs = 0x0
        laps = 0x0
        tracks = 0x0
        rlist = 0x0
        n = 0x0
        m = 0x0
        trk = 0
        f_lap = 0
        l_lap = 0
        l_idx = 0
        start = 0
        start_time = 0
        filename = '\000' <repeats 8191 times>
        filedir = 0x55825567f870 "/home/jens/Source/garmintools"
        path = 0x0
        filepath = '\000' <repeats 8191 times>
        tbuf = 0x0
#9  0x0000558254f82105 in garmin_download (argc=2, argv=0x7ffdbb512490) at ../src/garmin_save_runs.c:76
        garmin = {id = 0, product = {product_id = 484, software_version = 290, product_description = 0x55825567cee0 "Forerunner305 Software Version 2.90", additional_data = 0x0}, extended = {ext_data = 0x55825567cd00}, protocol = {physical = phys_P000, link = link_L001, command = appl_A010, waypoint = {waypoint = appl_A100, category = appl_Anil, proximity = appl_Anil}, route = appl_A201, track = appl_A302, almanac = appl_A500, date_time = appl_A600, flightbook = appl_Anil, position = appl_A700, pvt = appl_A800, lap = appl_A906, run = appl_A1000, workout = {workout = appl_A1002, occurrence = appl_A1003, limits = appl_A1005}, fitness = appl_A1004, course = {course = appl_A1006, lap = appl_A1007, track = appl_Anil, point = appl_A1008, limits = appl_A1009}}, datatype = {waypoint = {waypoint = data_D110, category = data_Dnil, proximity = data_Dnil}, route = {header = data_D202, waypoint = data_D110, link = data_D210}, track = {header = data_D311, data = data_D304}, almanac = data_D501, date_time = data_D600, flightbook = data_Dnil, position = data_D700, pvt = data_D800, lap = data_D1015, run = data_D1009, workout = {workout = data_D1008, occurrence = data_D1003, limits = data_D1005}, fitness = data_D1004, course = {course = data_D1006, lap = data_D1007, track = {header = data_Dnil, data = data_Dnil}, point = data_D1012, limits = data_D1013}}, usb = {handle = 0x55825567c0a0, bulk_out = 2, bulk_in = 131, intr_in = 129, read_bulk = 0}, verbose = 1}
        options = {{name = 0x558254f864dc "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x558254f86509 "verbose", has_arg = 0, flag = 0x558254f8a5b4 <verbose>, val = 1}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
#10 0x0000558254f8174b in handle_command (argc=2, argv=0x7ffdbb512490) at ../src/garmintool.c:108
        p = 0x558254f8a150 <commands+48>
#11 0x0000558254f81a78 in main (original_argc=3, original_argv=0x7ffdbb512488) at ../src/garmintool.c:206
        argv = 0x7ffdbb512490
        argc = 2
        free_argv = false
        retval = 1
@phako phako added the bug Something isn't working label Jun 22, 2020
@phako
Copy link
Owner Author

phako commented Jun 22, 2020

Some length being "s" in the above stack trace which is parsed from the packet

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant