Problem z Courier-IMAP

Bartosz Świątek shadzik w gmail.com
Wto, 29 Sty 2008, 13:27:34 CET


29-01-08, Bartosz Świątek <shadzik w gmail.com> napisał(a):
> 29-01-08, Paweł Muszyński <pmuch w zamek.szczecin.pl> napisał(a):
> > Milosz Rzeznikowski pisze:
> > > Dnia 2008-01-24, o godz. 12:13:17
> > > Paweł Muszyński <pmuch w zamek.szczecin.pl> napisał(a):
> > >
> > >> Bartosz Świątek pisze:
> > >>> 24-01-08, Paweł Muszyński <pmuch w zamek.szczecin.pl> napisał(a):
> > >>>> Bartosz Świątek pisze:
> > >>>>> 24-01-08, Paweł Muszyński <pmuch w zamek.szczecin.pl> napisał(a):
> > >>>>>> Po upgradzie do courier-imap-4.3.1 (użytkownicy w mysql,
> > >>>>>> postfixadmin) nie mogę się zalogować:
> > >>>>>> "FATAL ERROR : ACCOUNT'S mailbox directory is not owned by the
> > >>>>>> correct uid"
> > >>>>>>
> > >>>>>>
> > >>>>>> Znalazłem opis tu:
> > >>>>>>
> > >>>>>> http://42.pl/u/y43
> > >>>>>>
> > >>>>>> Wygląda na bug w courier-imap
> > >>>>>>
> > >>>>> Nie testowałem tego bo nie używam couriera... ale spróbuj w
> > >>>>> imap/imapd.c w linii 6394 zmienić getegid() na getgid() i
> > >>>>> przekompilować. Jeśli to zadziała to można spatchować couriera.
> > >>>> Zaraz spróbuje.
> > >>> I jak postepy?
> > >> Nie pomogło.
> > >
> > >
> > > http://www.mail-archive.com/courier-imap@lists.sourceforge.net/msg02633.html
> >
> > Załączam patcha rozwiązującego problem przez wyłączenie problematycznego
> > sprawdzania. IMHO to jedyne skuteczne rozwiązanie.
> >
>
> IMHO nie. Po cos to sprawdzanie jest. Ten patch po prostu odbiera, z
> pewnoscia nie bez powodu dodane, sprawdzanie id grupy - co jest evil.
> Do dystrybucji takie rozwiazanie wejsc nie moze - imho. Na pewno da
> sie to poprawic inaczej - ale ze nie uzywam i mnie ten problem nie
> dotyczy, to mnie to nie interesuje.
>

Dobra, zeby nie byc goloslownym to takie rozwiazanie powinno byc lepsze:

@@ -6392,7 +6392,10 @@

                if ( buf.st_uid != geteuid() ||
                     buf.st_gid != getegid())
+                    {
+                       errno=0;
                        write_error_exit("Account's mailbox directory is not
owned by the correct uid or gid");
+                    }

                if ( (buf.st_mode & S_IRWXU) != (buf.st_mode & S_IRWXU))
                        write_error_exit("Invalid permissions on account's
mailbox directory");

Zauwaz ze strace poprawnie wypisuje gid i uid usera, problem jest
tylko w wywolaniu funkcji errora, ktora podaje zly numer bledu (0 -
brak bledu)
Sprawdz czy to zadziala.


Więcej informacji o liście dyskusyjnej pld-devel-pl