Moin,
also ich hab da eine Funktion:
// Serialize Nameserver Query int serNSQuery(char *query, char *qname, Sho type, Sho class){ char *tok = ".";
… und du hast ein konstantes Token, das nicht als const deklariert ist:
const char tok[] = ".";
char *pch = NULL; pch = strtok(qname, tok);
… Und du hast da eine Funktion, die man mit Vorsicht verwenden sollte …
int i = 0;
… sowie einen Array-Index eines vorzeichenbehafteten Datentyps …
for( ; pch != NULL; pch = strtok(NULL, tok)){ Oct len = strlen(pch);
… eine Umdefinition des Datentyps size_t oder einen möglichen Integer-Überlauf …
query[i] = len; memcpy(&query[i+1], pch, len); i += 1 + len; } query[i] = 0; // Terminiern query[i+1] = 0; query[i+2] = 1; // type A query[i+3] = 0; query[i+4] = 1; // class IN int qlen = i + 5; // Länge der Query return qlen; }und damit ein Problem beim Aufruf.
Eins? Mehrere, siehe oben.
Setze ich
char query[512]; char qname[] = "example.org"; int qlen = serNSQuery(query, qname, 1, 1);funktioniert alles, wenn ich jedoch die Funktion mit
serNSQuery(query, "example.org", 1, 1)aufrufe, schmiert die exe ab (es compliliert also). Was hab' ich nicht verstanden!?
Viele Grüße
Robert
 nicht angemeldet
 nicht angemeldet Rolf B
 Rolf B