Preco mi zomiera PHP (SIGABRT)?

Marcel Telka marcel na telka.sk
Pátek Červenec 14 15:46:54 CEST 2000


Marcel Telka wrote:
> 
> Jan Satko wrote:
> >
> > >                                               /var/run/.nscd_socket"}, 110) =
> > > -1 ECONNREFUSED (Connection refused)
> > > open("/etc/nsswitch.conf", O_RDONLY)    = -1 ENOENT (No such file or
> > > open("/lib/libnss_compat.so.2", O_RDONLY) = -1 ENOENT (No such file or
> > > directory)
> > > connect(10, {sin_family=AF_UNIX, path="      /dev/log"}, 16) = -1 ENOENT (No
> > > such file or directory)
> >
> > Citam co pise.
> > "No such file or directory". Treba prelozit ?
> >
> > Mate spravne prava na tie subory ? Existuju vobec ? Nemate to chrootovane
> > alebo nieco take ?
> 
> Prave som si v inom threade - named neloguje :-( - precital o holelogd a
> spol. a podarilo sa mi teda z toho umierajuceho php 3 dostat hlasku do
> logu:
> 
> IMAP toolkit crash: Unable to look up user name
> 
> Takze hadam sa pohnem dalej. (Vdaka p. Satko!)
> 

Nakoniec som ho (teda c-client.a z imap-4.7c, ktory je zakompilovany v
php-3.0.16) presvedcil takto:

diff -urN imap-4.7c.orig/src/osdep/unix/env_unix.c
imap-4.7c/src/osdep/unix/env_unix.c
--- imap-4.7c.orig/src/osdep/unix/env_unix.c	Wed May  3 19:33:01 2000
+++ imap-4.7c/src/osdep/unix/env_unix.c	Fri Jul 14 15:41:44 2000
@@ -587,22 +587,6 @@
 char *myusername_full (unsigned long *flags)
 {
   char *ret = (char *) unlogged_user;
-  if (!myUserName) {		/* get user name if don't have it yet */
-    struct passwd *pw;
-    unsigned long euid = geteuid ();
-    char *s = (char *) (euid ? getlogin () : NIL);
-				/* look up getlogin() user name or EUID */
-    if (!((s && *s && (pw = getpwnam (s)) && (pw->pw_uid == euid)) ||
-	  (pw = getpwuid (euid)))) fatal ("Unable to look up user name");
-				/* init environment if not root */
-    if (euid) env_init (pw->pw_name,((s=getenv("HOME")) && *s) ?
s:pw->pw_dir);
-    else ret = pw->pw_name;	/* in case UID 0 user is other than root */
-  }
-  if (myUserName) {		/* logged in? */
-    if (flags) *flags = anonymous ? MU_ANONYMOUS : MU_LOGGEDIN;
-    ret = myUserName;		/* return user name */
-  }
-  else if (flags) *flags = MU_NOTLOGGEDIN;
   return ret;
 }
 

Asi to nebolo velmi systemove..., ale funguje.


-- 
+-----------------------------------------------------------------+
| Marcel Telka <marcel na telka.sk>            Vadium s.r.o.         |
| http://telka.sk/                          http://www.vadium.sk/ |
+-----------------------------------------------------------------+


Další informace o konferenci Linux