eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaesp8266 i snprintf() › esp8266 i snprintf()
  • Data: 2017-07-23 18:42:29
    Temat: esp8266 i snprintf()
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Do tej pory we wszystkich moich projektach, zgodnie z zalecaną praktyką
    stosowałem funkcję snprintf() zamiast sprintf(), aby uniknąć możliwości
    przepełnienia bufora. Podobnie z innymi funkcjami z stdio.h i string.h,
    które posiadają taki odpowiednik.

    Jednak z tego co widzę, to w przypadku SDK do ESP8266 nie jest to takie
    proste. Wśród bibliotek udostępnionych przez producenta znajdują się
    osobne funkcje do manipulowana łańcuchami tekstowymi, z prefiksem "os_".
    Zamiast sprintf() należy więc używać os_sprintf. Problem w tym, że w
    zestawie nie ma funkcji sprawdzających wielkość bufora.

    Teoretycznie można w projekcie wykorzystać standardowe biblioteki
    "stdio.h" albo "string.h", jednak z tego co wyczytałem nie jest to
    zalecane i wynika to ze specyfiki sprzętu (coś z wyrównywaniem pamięci).
    Kod się skompiluje i może działać, ale wcale nie musi i nie ma
    gwarancji, że w pewnym momencie się z tego powodu nie wysypie.

    Stąd mam kilka pytań do osób trochę lepiej obeznanych z tą platformą:

    1) Czy Arduino Core dla ESP8266 też jest dotknięte tą przypadłością?
    Jest ono zaledwie nakładką na oficjalne SDK, czy też ktoś przeportował
    standardowe biblioteki uwzględniając tę kwestię i można bezpiecznie
    używać snprintf()?
    Niby nie przepadam szczególnie za Arduino, ale to byłoby jakimś
    argumentem...
    2) Czy istnieje jakiś prosty sposób na uniknięcie tego problemu, przy
    jednoczesnym korzystaniu z os_sprintf()? Czy też jedynym wyjściem jest
    wcześniejsze sprawdzanie długości wszystkich elementów składowych,
    wpisywanych?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: