[vz-dev] vzlogger - Segmentation fault
Thorben Thuermer
r00t at constancy.org
Sun Nov 11 00:23:52 CET 2012
doppelte arbeit...
hatte das vor ein paar wochen schon analysiert:
http://www.mail-archive.com/volkszaehler-dev@lists.volkszaehler.org/msg00928.html
ich wuerde aber erstmal bei meiner theorie bleiben, dass das problem durch
serielle uebertragungsfehler verursacht wird, und der sml-parser nur bei
_ungueltigen_ daten abstuerzt.
man muesste sich die empfangenen bytes im detail anhand der spezifikation
anschauen...
- Thorben
On Sat, 10 Nov 2012 23:09:05 +0100 xdiwi <xdiwi at gmx.net> wrote:
> Hallo,
>
> ich bin derzeit dabei den vzlogger auf meinem System zum Laufen zu
> bringen. Prinzipiell funktioniert dieser auch schon und liefert
> sinnvolle Werte, läuft aber leider nach einigen Minuten auf einen
> Segmentation Fault!
>
> vzlogger von https://github.com/stv0g/vzlogger.git
>
> Zur Fehlersuche habe ich vzlogger mit --enable-debug compiliert und
> unter dbg laufen lassen. Ich habe die problematische Stelle zwar auch
> finden können, aber für eine vernünftige/sinnvolle Änderung des
> Source-Codes fehlt mir der Überblick über die Programmstruktur. Ich
> hoffe einer der Spezialisten kann hier mal helfen und den Source-Code
> sinnvoll korrigieren!
>
>
> Hier die Details:
>
> In der Funktion *meter_read_sml()* (Datei
> ./vzlogger/src/protocols/sml.c) wird die Funktion *sml_transport_read()*
> aus ./libsml/sml/src/sml_transport.c aufgerufen. Diese liefert im
> Fehlerfall als Return-Wert eine *0*!! Da dies nicht abgefangen wird,
> wird anschließend die Funktion *sml_file_parse(**)* mit ungültigen
> Parametern (bytes -16 = -16) aufgerufen und läuft dann auf einen
> Segmentation Fault!
>
>
> Zeile 159:
> ...
> /* wait until a we receive a new datagram from the meter (blocking
> read) */
> bytes = *sml_transport_read*(handle->fd, buffer, SML_BUFFER_LEN);
>
>
> /* parse SML file & stripping escape sequences */
> file = *sml_file_parse*(buffer + 8, *bytes - 16*);
>
> ...
>
>
>
> Grüße
>
> Dieter
>
>
>
More information about the volkszaehler-dev
mailing list