Branch: Tag:

2011-06-29

2011-06-29 12:47:09 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Survive crypt(3C) failing. Fixes [bug 6013 (#6013)].

5:   \*/   /**/   #include "global.h" - RCSID("$Id: builtin_functions.c,v 1.153 2008/09/14 07:17:11 grubba Exp $"); + RCSID("$Id$");   #include "interpret.h"   #include "svalue.h"   #include "pike_macros.h"
1161:       saltp=sp[1-args].u.string->str;    } else { -  unsigned int foo; /* Sun CC want's this :( */ +  unsigned int foo; /* Sun CC wants this :( */    foo=my_rand();    salt[0] = choise[foo % (unsigned int) strlen(choise)];    foo=my_rand();
1177:    ret = sp[-args].u.string->str;   #endif   #endif +  if (!ret) { +  switch(errno) { + #ifdef ELIBACC +  case ELIBACC: +  Pike_error("Failed to load a required shared library. " +  "Unsupported salt.\n"); +  break; + #endif +  case ENOMEM: +  Pike_error("Out of memory.\n"); +  break; +  case EINVAL: +  default: +  Pike_error("Unsupported salt (%d).\n", errno); +  break; +  } +  }    if(args < 2)    {    pop_n_elems(args);