#endif
#include <errno.h>
#include <locale.h>
+#include <limits.h>
#if defined(SVR4) || defined(__linux__)
#include <time.h>
#endif
#ifndef SBCL_HOME
-#define SBCL_HOME "/usr/local/lib/sbcl/"
+#define SBCL_HOME SBCL_PREFIX"/lib/sbcl/"
#endif
#ifdef LISP_FEATURE_HPUX
core = (runtime_path ? runtime_path :
copied_string(saved_runtime_path));
} else {
- free(runtime_path);
+ if (runtime_path)
+ free(runtime_path);
}
}
++argi;
if (argi >= argc)
lose("missing argument for --dynamic-space-size");
- errno = 0;
- dynamic_space_size = strtol(argv[argi++], 0, 0) << 20;
- if (errno)
- lose("argument to --dynamic-space-size is not a number");
+ {
+ char *tail;
+ long tmp = strtol(argv[argi++], &tail, 0);
+ if (tail[0])
+ lose("--dynamic-space-size argument is not a number");
+ if ((tmp <= 0) ||
+ (tmp >= (LONG_MAX >> 20))) {
+ lose("--dynamic-space-size argument is out of range");
+ }
+ dynamic_space_size = tmp << 20;
+ }
# ifdef MAX_DYNAMIC_SPACE_END
if (!((DYNAMIC_SPACE_START <
DYNAMIC_SPACE_START+dynamic_space_size) &&
(DYNAMIC_SPACE_START+dynamic_space_size <=
MAX_DYNAMIC_SPACE_END)))
- lose("specified --dynamic-space-size too large");
+ lose("--dynamic-space-size argument is too large");
# endif
} else if (0 == strcmp(arg, "--control-stack-size")) {
++argi;
fflush(stdout);
}
-#if defined(SVR4) || defined(__linux__)
+#if defined(SVR4) || defined(__linux__) || defined(__NetBSD__)
tzset();
#endif