[vz-dev] vzlogger - Segmentation fault

xdiwi xdiwi at gmx.net
Sat Nov 10 23:09:05 CET 2012


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



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://volkszaehler.org/pipermail/volkszaehler-dev/attachments/20121110/45eed24d/attachment.html>


More information about the volkszaehler-dev mailing list