| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parameters were uint16_t and we asked the libc to make a
store of uint32_t. So 16bit were written to the wrong part of
the struct and on ARM this is causing unaligned memory access.
Use the %hx to make a uint16_t store and avoid the above issue.
GDB
#0 0x4d4d0a20 in _IO_vfscanf () from /lib/libc.so.6
(gdb) bt
#0 0x4d4d0a20 in _IO_vfscanf () from /lib/libc.so.6
#1 0x4d4d5d54 in __isoc99_vsscanf () from /lib/libc.so.6
#2 0x4d4d5cd0 in __isoc99_sscanf () from /lib/libc.so.6
#3 0x400a597c in ?? () from /usr/lib/gsmd/libgsmd-vendor_wavecom.so
Cannot access memory at address 0x3
Clang:
vendor_wavecom.c:114:21: warning: format specifies type 'unsigned int *' but the argument has
type 'u_int16_t *' (aka 'unsigned short *') [-Wformat]
sscanf(tok, "%x", &aux->u.cell_info.ci);
~~ ^~~~~~~~~~~~~~~~~~~~
%hx
|
|
|
|
|
| |
In some cases the modem might be stuck once we start up, so it's best to
re-initialize it at gsmd startup.
|
|
|
|
|
|
| |
This avoids having to have another client program which then passes
messages from gsmd into gpsd. Rather, gpsd can directly receive the
messages via UDP.
|
| |
|
|
|
|
|
|
| |
we simply convert the sysmocom specific unsolicited messages into
an usock event which is transported to the client[s] who subscribed
to it.
|
| |
|
|
|