[vz-users] vzlogger exec maximal 32 Zeilen
Jakob Hirsch
jh at plonk.de
Mi Jan 12 12:29:18 CET 2022
On 2022-01-12 09:51, Andreas Brus wrote:
> Ich nehme an, daß n irgendwo hardcoded auf 32 steht.
Meter.cpp, Zeile 59:
METER_DETAIL(exec, Exec, "Parse program output", 32),
Kann m.E. an der Stelle gefahrlos erhöht werden.
> Allerdings wenn man die Abfrage auf i < n wegnimmt und so nur prüft, ob
> noch was in der pipe steht oder fgets Daten bekommt, kann man zwar bis
> zu zwei weitere Werte (laut debug log) lesen, aber dann stürzt der
> komplette Prozess ab. Ich nehme also an, daß es dann an anderer Stelle
> zu einem Überlauf kommt.
Naja, es ist Speicher für 32 readings allokiert, wenn du mehr
reinschreibst, überschreibst du halt Speicher, wo andere Sachen stehen,
und da das benutzte std::vector auf dem Stack liegt, kracht das ziemlich
schnell (zum Glück!).
Mehr Informationen über die Mailingliste volkszaehler-users