batt: fix sigfpe: check that voltage_now != 0
authorHenry Gebhardt <hsggebhardt@gmail.com>
Mon, 5 Aug 2013 17:47:59 +0000 (13:47 -0400)
committerHenry Gebhardt <hsggebhardt@gmail.com>
Mon, 5 Aug 2013 17:47:59 +0000 (13:47 -0400)
commit7ef772dce6eaaef2c2657c4200874b20bf869edf
treef1b1d66ea84d16aff5febc57c1bae2475b30fda8
parentfeb8dd37590f0f58fc77c99245f42b74889b21cf
batt: fix sigfpe: check that voltage_now != 0

gdb backtrace:
    Program received signal SIGFPE, Arithmetic exception.
    0x00007fffde2104c4 in battery_update (b=0x77be10) at batt_sys.c:193
    193     b->charge_full = b->energy_full * 1000 / b->voltage_now;
    (gdb) bt full
    #0  0x00007fffde2104c4 in battery_update (b=0x77be10) at batt_sys.c:193
     gctmp = 0xc58e60 "Battery"
    #1  0x00007fffde20eb37 in update_timout (lx_b=0x77db20) at batt.c:253
    No locals.
    #2  0x00007ffff6481e3b in ?? () from /usr/lib64/libglib-2.0.so.0
    No symbol table info available.
    #3  0x00007ffff67599a0 in ?? () from /usr/lib64/libglib-2.0.so.0
    No symbol table info available.
    #4  0x0000000000000001 in ?? ()
    No symbol table info available.
    #5  0x00000000006c8d40 in ?? ()
    No symbol table info available.
    #6  0x00007ffff64812b5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
    No symbol table info available.
    #7  0x0000000000000002 in ?? ()
    No symbol table info available.
    #8  0x00007fffffffda70 in ?? ()
    No symbol table info available.
    #9  0x00007ffff6481e20 in ?? () from /usr/lib64/libglib-2.0.so.0
    No symbol table info available.
    #10 0x00000000f64810f2 in ?? ()
    No symbol table info available.
    #11 0x000000000077db20 in ?? ()
    No symbol table info available.
    #12 0x00007fffde20eacf in update_display (lx_b=0x18, repaint=0) at batt.c:244
     cr = 0x7fffffffda70
     tooltip = "$\305I\366\377\177\000\000@\240n", '\000' <repeats 13 times>, "\240\231u\366\377\177\000\000@;g\000\000\000\000\000\340\334w\000\000\000\000\000:\371I\366\377\177\000\000@;g\000\000\000\000\000\001\000\000\000\000\000\000\000\240\331\377\377\377\177\000\000\276\377 \336\377\177\000\000\252\r!\336\377\177\000\000\020\276w\000\000\000\000\000\360\336w\000\000\000\000\000`t\310\000\000\000\000\000@\240n\000\000\000\000\000\320[\310\000\000\000\000\000\300\331\377\377\377\177\000\000C\000!\336\377\177\000\000\252\r!\336\377\177\000\000\020\276w\000\000\000\000\000\360\331\377\377\377\177\000\000\367\003!\336\377\177\000\000\001\000\000\000\000\000\000\000\020\276w\000\000\000\000\000"...
     b = 0x7ffff6481e20
     rate = 0
     isCharging = 2
     chargeLevel = 32767
     __FUNCTION__ = "update_display"
    #13 0x000000000077def0 in ?? ()
    No symbol table info available.
    #14 0x0000000000000000 in ?? ()
    No symbol table info available.
    (gdb) print "%p" b
    A syntax error in expression, near `b'.
    (gdb) print "%p", b
    $1 = (battery *) 0x77be10
    (gdb) print "%lf", b->voltage_now
    $2 = 0
    (gdb) print "%f", b->voltage_now
    $3 = 0
    (gdb) print "%d", b->voltage_now
    $4 = 0
src/plugins/batt/batt_sys.c