Call for pkgsrc help - Firefox broken
    Ferruccio Zamuner 
    nonsolosoft at diff.org
       
    Sat Jul  5 03:48:40 PDT 2008
    
    
  
Hasso Tepper wrote:
/scratch/www/firefox/work/mozilla/security/nss/cmd/shlibsign/DragonFly1.13_OPT.OBJ/shlibsign -v -i /scratch/www/firefox/work/mozilla/dist/lib/libsoftokn3.so
Bus error (core dumped)
make[3]: *** [/scratch/www/firefox/work/mozilla/dist/lib/libsoftokn3.chk] 
Error 138
Looking at backtrace of shlibsign.core it seems a recursive function 
call that doesn't meet the exit condition:
ore was generated by `shlibsign'.
Program terminated with signal 10, Bus error.
#0  0x280aacb4 in RNG_RNGInit ()
   from /usr/obj/pkgsrc/www/firefox/work/mozilla/dist/lib/libssl3.so
(gdb) backtrace
#0  0x280aacb4 in RNG_RNGInit ()
   from /usr/obj/pkgsrc/www/firefox/work/mozilla/dist/lib/libssl3.so
#1  0x280aacea in RNG_RNGInit ()
   from /usr/obj/pkgsrc/www/firefox/work/mozilla/dist/lib/libssl3.so
#2  0x280aacea in RNG_RNGInit ()
   from /usr/obj/pkgsrc/www/firefox/work/mozilla/dist/lib/libssl3.so
[...]
#10139 0x280aacea in RNG_RNGInit ()
   from /usr/obj/pkgsrc/www/firefox/work/mozilla/dist/lib/libssl3.so
[...] same as above
/usr/obj/pkgsrc/www/firefox/work/mozilla/security/nss/lib/freebl/prng_fips1861.c, 
 line 397:
/*
 * Initialize the global RNG context and give it some seed input taken
 * from the system.  This function is thread-safe and will only allow
 * the global context to be initialized once.  The seed input is likely
 * small, so it is imperative that RNG_RandomUpdate() be called with
 * additional seed data before the generator is used.  A good way to
 * provide the generator with additional entropy is to call
 * RNG_SystemInfoForRNG().  Note that NSS_Init() does exactly that.
 */
SECStatus
RNG_RNGInit(void)
{
    /* Allow only one call to initialize the context */
    PR_CallOnce(&coRNGInit, rng_init);
    /* Make sure there is a context */
    return (globalrng != NULL) ? PR_SUCCESS : PR_FAILURE;
}
and in
/usr/obj/pkgsrc/www/firefox/work/mozilla/security/nss/lib/freebl/loader.c 
line: 923:
SECStatus
RNG_RNGInit(void)
{
  if (!vector && PR_SUCCESS != freebl_RunLoaderOnce())
      return SECFailure;
  return (vector->p_RNG_RNGInit)();
}
but in 
/usr/obj/pkgsrc/www/firefox/work/mozilla/security/nss/lib/freebl/prng_fips1861.c
there is note:
/* Use NSPR to prevent RNG_RNGInit from being called from separate
 * threads, creating a race condition.
 */
static const PRCallOnceType pristineCallOnce;
static PRCallOnceType coRNGInit;
static PRStatus rng_init(void)
{
[...]
}
I hope that this could be usefull as investigation to fix the bug.
bye,            \fer
    
    
More information about the Users
mailing list