DragonFly users List (threaded) for 2008-07
DragonFly BSD
DragonFly users List (threaded) for 2008-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Call for pkgsrc help - Firefox broken


From: Ferruccio Zamuner <nonsolosoft@xxxxxxxx>
Date: Sat, 05 Jul 2008 12:48:40 +0200

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




[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]