pike.git / src / builtin_functions.c

version» Context lines:

pike.git/src/builtin_functions.c:2975:       if(saltp)    {    if( Pike_sp[1-args].u.string->len < 2 )    {    pop_n_elems(args);    push_int(0);    return;    }    } else { -  unsigned int foo; /* Sun CC want's this :( */ +  unsigned int foo; /* Sun CC wants this :( */    foo=my_rand();    salt[0] = choise[foo % (size_t) strlen(choise)];    foo=my_rand();    salt[1] = choise[foo % (size_t) strlen(choise)];    saltp=salt;    }   #ifdef HAVE_CRYPT    ret = (char *)crypt(pwd, saltp);   #else   #ifdef HAVE__CRYPT    ret = (char *)_crypt(pwd, saltp);   #else   #error No crypt function found and fallback failed.   #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);    push_text(ret);    }else{    int i;    i=!strcmp(ret,saltp);    pop_n_elems(args);    push_int(i);    }