[vz-users] vzlogger stürzt immer ab
Matthias Behr
mbehr at mcbehr.de
Wed Mar 11 21:26:51 CET 2015
I found a first memory overwrite in
sml_transport_read:
while (len < max_len) {
sml_read(fd, &readfds, &(buf[len]), 4);
Above will write into buf[len+3] so write 3 bytes out of the alloc (on stack in this case) memory.
(Later even up to 8 bytes memory will be badly written and not only on stack but heap as well.)
See here for a first patch:
diff --git a/sml/src/sml_transport.c b/sml/src/sml_transport.c
index 24e8b62..eda87f6 100644
--- a/sml/src/sml_transport.c
+++ b/sml/src/sml_transport.c
@@ -73,7 +73,7 @@ size_t sml_transport_read(int fd, unsigned char *buffer, size_t max_len) {
// found start sequence
- while (len < max_len) {
+ while ((len+8) < max_len) { // we might write 8 more bytes and not just one so make sure we have enough buffer space left!
sml_read(fd, &readfds, &(buf[len]), 4);
> Am 11.03.2015 um 21:03 schrieb Matthias Behr <mbehr at mcbehr.de>:
>
> Ein Backtrace zeigt eindeutig auf heap/memory corruption:
> #0 0xb699ef50 in __open_catalog () from /lib/arm-linux-gnueabihf/libc.so.6
> No symbol table info available.
> #1 0xb69e0fac in new_heap () at arena.c:567
> using_malloc_checking = 0
> check_action = 1
> save_free_hook = 0
> atfork_recursive_cntr = 0
> arena_mem = 270336
> save_malloc_hook = 0
> mp_ = {trim_threshold = 131072, top_pad = 131072, mmap_threshold = 131072, arena_test = 2, arena_max = 0, n_mmaps = 0, n_mmaps_max = 65536,
>
> Der 2. auch, sogar mit noch mehr Infos:
> next = 0xb4300010,
> next_free = 0x0, system_mem = 135168, max_system_mem = 135168}
> __elf_set___libc_thread_subfreeres_element_arena_thread_freeres__ = 0xb6aa0958
> aligned_heap_area = 0x0
> narenas = 3
> __malloc_initialize_hook = 0
> __after_morecore_hook = 0
> __free_hook = 0
> __memalign_hook = 0xb6a0d5d8 <memalign_hook_ini>
> __libc_malloc_initialized = 1
> __morecore = 0xb6a0e4f4 <__default_morecore>
> __realloc_hook = 0
> __malloc_hook = 0
> #5 0x00078758 in sml_number_free ()
> No symbol table info available.
>
> D.h. wir sollten die Probleme in der libsml (oder der Benutzung der libsml Daten in MeterSML) suchen.
>
> Hat noch jemand das Image mit sml Metern im Einsatz?
>
> Gruß
> Matthias
>
>> Am 11.03.2015 um 20:46 schrieb Matthias Behr <mbehr at mcbehr.de>:
>>
>> Ich schaue mir die anderen Backtraces noch mal an. Aber Sorge macht mir mehr der Valgrind Auszug.
>>
>>
>>> Am 11.03.2015 um 18:36 schrieb oderwas at gmx.net:
>>>
>>> Hallo,
>>>
>>> hier meine Komponenten:
>>>
>>> Raspberry Pi Model B+ Mainboard (GPIO polig, MicroSD Speicherkartenslot, HDMI, 4x USB 2.0)
>>>
>>> Aukru 3er Set passive Alu Kühlkörper in verschiedenen Größen für Raspberry Pi B+ / B Und Pi 2 Model B- zum Aufkleben
>>>
>>> Rydges® High-Quality PC Netzteil - by OTB 2A - / 2000 mAh Ladegerät 5V 2000 mAh für Raspberry Pi Modell A und B & Banana Pi - Pi Model B+ (B Plus)
>>>
>>> Transcend TS32GUSDHC10E Class 10 Extreme-Speed microSDHC 32GB
>>>
>>> IR Sensoren USB von Udo (hatte ein Freund mitbestellt)
>>>
>>>
>>> Ich werde den Raspi heute komplett neu aufsetzen und versuchen vzlogger manuell zu installieren.
>>> Bin skeptisch, ob ich das hinbekomme, aber es erscheint mir als die beste Lösung. Und dann die Versionen von vzlogger rückwärts einspielen.
>>>
>>> außer die Backtraces sagen jemandem was...
>>>
>>> Viele Grüße
>>>
>>> Markus
>>
>> Gruß
>>
>> Matthias
>>
>
> Gruß
>
> Matthias Behr
>
Gruß
Matthias Behr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5256 bytes
Desc: not available
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-users/attachments/20150311/1932409e/attachment.bin>
More information about the volkszaehler-users
mailing list