On Sun, Jan 16, 2005 at 10:02:49PM +0100, Stef Epardaud wrote:
> On Sun, Jan 16, 2005 at 07:03:30PM +0100, Sjoerd Simons wrote:
> > The socket opening stuff is something your nisbindings do, not a dbus thing.
> > Could you trace the daemon with ltrace and provide the last part of the 
> > output.
> 
> Ok, thanks for the quick reply, here goes:
> 
> memmove(0x809bc9d, 0x809bc98, 0, 0x80903d0, 0)   = 0x809bc9d
> memcpy(0x809bc98, "BEGIN", 5)                    = 0x809bc98
> memmove(0x8091360, 0x8091365, 2, 0x80903d0, 0x809ba00) = 0x8091360
> memmove(0x8091360, 0x8091362, 0, 0x80903d0, 0x809ba00) = 0x8091360
> free(0x8093cf8)                                  = <void>
> free(0x809bc98)                                  = <void>
> calloc(24, 1)                                    = 0x8093c38
> getpwuid(1000, 0xb7f9f620, 1, 0xbfffed18, 0xb7ee0014) = 0xb7f9fe9c
> strlen("stephane")                               = 8
> malloc(9)                                        = 0x8093cf8
> memcpy(0x8093cf8, "stephane", 9)                 = 0x8093cf8
> strlen("/home/stephane")                         = 14
> malloc(15)                                       = 0x809bc98
> memcpy(0x809bc98, "/home/stephane", 15)          = 0x809bc98
> malloc(68)                                       = 0x8094310
> getgrouplist(0x8093cf8, 1000, 0x8094310, 0xbfffed08, 0xb7ee0014 <unfinished 
> ...>
> --- SIGSEGV (Segmentation fault) ---
> +++ killed by SIGSEGV +++
> 
> that's the last part, if you want what's before (and there's quite a few), 
> do tell :)

Hrm, it crashes inside the getgrouplist call, odd.. 
> 
> > Your the first to give someusefull feedback :) Getting no feedback is also
> > very frustrating..
> 
> Oh don't worry I'll give you all the info I can, thanks a lot for the help!

Cool.. Could you try to run the attached program as user messagebus (or as your
normal user, should have the same result)

  Sjoerd
-- 
An anthropologist at Tulane has just come back from a field trip to New
Guinea with reports of a tribe so primitive that they have Tide but not
new Tide with lemon-fresh Borax.
                -- David Letterman
#include <stdio.h>
#include <stdlib.h>
#include <grp.h>

int main() {
  int i, ng = 17;
  char *user = "stephane";   /* username here */
  gid_t g = 1000;
  gid_t *groups = NULL;

  groups = malloc(ng * sizeof(gid_t));

  if (getgrouplist(user, g, groups, &ng) < 0) {
    realloc(groups, ng * sizeof (gid_t));
    getgrouplist(user, g, groups, &ng);
  }

  for(i = 0; i < ng; i++)
    printf("%d\n", groups[i]);
  
  return 0;
}

Reply via email to