|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alex Semenyaka 2:461/640.640 16 Mar 2006 16:30:54 To : damir bikmuhametov Subject : mpd3, sigsegv (was: mpd4, 1000 или более интеpфейсов) --------------------------------------------------------------------------------
16 Mar 06 11:49, you wrote to all:
db>> for (k = 0; k < gNumPptpCtrl; k++) {
db>> PptpCtrl const c = gPptpCtrl[k];
db>> if (c != NULL
db>> && c->peer_addr.s_addr == peer_addr.s_addr
db>> && c->peer_port == peer_port) {
db>> if (orig)
db>> return(c);
db>> else {
db>> snprintf(buf, bsiz, "pptp: connection to %s:%u already
db>> exists",
db>> inet_ntoa(peer_addr), peer_port);
db>> return(NULL);
db>> }
db>> }
db>> }
db> обтыкал этот кусок отладочной печатью. сегодня опять свалилось,
db> посмотpел в лог - точно, валится в этом цикле.
db> у кого-нибудь из плотно занимающихся mpd есть идеи, почему это
db> пpоисходит? давайте думать вместе.
Плотно не занимаюсь. Hо вряд ли проблема с buf. Значит, указатель c смотрит в
попу (не в NULL, там проверка, а именно в попу).
А это значит, что, скорее всего, обгажена табличка gPptpCtrl[]. А загадило её,
видимо, где-то совсем в другом месте, скорее всего - из-за того, что что-то не
проверило какие-то границы и за них вылезло. Искать подобные вещи, понятно,
муторно.
Alex
--- IMHO в последней инстанции
* Origin: ...можжевеловых... (2:461/640.640)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/392944195b22.html, оценка из 5, голосов 10
|