Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Oscam absturz

dazu bräuchte er vielleicht ein Log - Level 4096 - aus einer Debug-Version zum Zeitpunkt Crash.

wobei:
uint32_t len = 0;
int8_t len = 0;​

wäre nicht uint8_t besser?
 
Zuletzt bearbeitet:
denke ich auch da wir kein Minus brauchen und uint8_t bis 270 geht (glaube ich gelesen zu haben);)
und wobei es viel besser zu unsigned char passen würde.
 
Zuletzt bearbeitet:
Wertebereich:
+ int8_t >> 8 Bit >> -128..127 >> signed char
+ uint8_t >> 8 Bit >> 0..255 >> unsigned char
 
Bestätige das Problem mit 11420, auf 11410 runtergegangen und da ging es wieder. Ist mit schleierhaft woran es liegt, vor 6 Wochen hatte ich das Problem mit derselben Version noch nicht.
 
Eig. dürfte die Deklaration der Längenvariablen 'len' nicht kleiner sein, als die max. mögliche Anzahl der zu schreibenden Bytes.
Diese wäre im o.a. Fall 1024.

D.h. aus Sicherheitsgründen müsste die Deklaration dann wie folgt aussehen:

Code:
[ u]int16_t len = 0;

Denke, @gorgone wird es selber viel besser wissen, wie er das zu korrigieren hat. :)

@TantäGiselar
Steht ja bereits in diesem Thread, warum es nicht geht. Einfach mal lesen.
 
Zuletzt bearbeitet:
Code:
    char emmdata[1025] = {'\0'}; /*1024 + '\0'*/
    unsigned char emmhex[513] = {'\0'};
    char buff[5] = {'\0'};
    uint8_t len = 0;
    cs_strncpy(emmdata, ep, sizeof(emmdata));
    remove_white_chars(emmdata);

    if('\0' != emmdata[0])
    {
      len = strlen(emmdata);

hier wäre vielleicht uint16_t besser wie pehedima schrieb. Buffer emmdata ist mit size 1025 angelegt, \0 weg als terminierendes Zeichen ergibt max 1024 (E-APDU).
Die Methode strlen(...) liefert size_t zurück.
 
Zuletzt bearbeitet:
wo sind die Tester:
  • svn up
  • kompilieren auf jeweiligem System
  • Austausch alte oscam - Debug - durch V. 11423
  • Debug-Level 4096 o. ALL
  • Test mit EMM's die zum Crash geführt haben
  • Ergebnnis bekanntgeben - SUCCESS/FAILURE
:D:D:D

kannn es leider mangels Masse Karte, die diese Probleme verursacht, nicht selber testen.:(
 
Zuletzt bearbeitet:
Zurück
Oben