Evidemment qu'il s'agit de mauvaise programmation, mais tu connais des gens qui ne font jamais d'erreurs ? La mauvaise programmation comme tu l'appelles, c'est un truc avec lequel il faut vivre, si demain ton kernel arrete de fonctionner a cause d'un bug, mauvaise programmation ou pas, tu l'auras profond.
Et le probleme c'est que ce genre de bugs se produit regulierement.
for (res = res0, s = -1; res != NULL; res = res->ai_next) {
s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (s < 0) {
emsg = "socket";
continue;
}
if (connect(s, res->ai_addr, res->ai_addrlen)) {
close(s);
s = -1;
emsg = "connect";
continue;
}
break;
}
if (s < 0)
err(1, "%s", emsg);
if (read(s, &tim, sizeof(time_t)) != sizeof(time_t))
err(1, "Could not read data");
Voila un cas qui clairement posera probleme, et c'est du code en utilisation aujourd'hui donc.
J'ai mis 5 minutes avec Google a trouver 2 exemples ou il y a un probleme, tu imagines bien qu'il y a en a beaucoup d'autres.
[^] # Re: Vive les timestamp
Posté par pasBill pasGates . En réponse au journal Le premier journal du vendredi de l'année (Le Zune plante). Évalué à 2.
Et le probleme c'est que ce genre de bugs se produit regulierement.
cf. http://74.125.95.132/search?q=cache:7hxjPe0AUdYJ:www.irbs.ne(...)
pour un exemple deja rapporte.
Et plus important : http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/usr.sbin(...)
for (res = res0, s = -1; res != NULL; res = res->ai_next) {
s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
if (s < 0) {
emsg = "socket";
continue;
}
if (connect(s, res->ai_addr, res->ai_addrlen)) {
close(s);
s = -1;
emsg = "connect";
continue;
}
break;
}
if (s < 0)
err(1, "%s", emsg);
if (read(s, &tim, sizeof(time_t)) != sizeof(time_t))
err(1, "Could not read data");
Voila un cas qui clairement posera probleme, et c'est du code en utilisation aujourd'hui donc.
J'ai mis 5 minutes avec Google a trouver 2 exemples ou il y a un probleme, tu imagines bien qu'il y a en a beaucoup d'autres.