e-mail on cmucl-help@cons.org on 2001-01-16 and 2001-01-17 from WHN
and Pierre Mai.)
-79:
- as pointed out by Dan Barlow on sbcl-devel 2000-07-02:
- The PICK-TEMPORARY-FILE-NAME utility used by LOAD-FOREIGN uses
- an easily guessable temporary filename in a way which might open
- applications using LOAD-FOREIGN to hijacking by malicious users
- on the same machine. Incantations for doing this safely are
- floating around the net in various "how to write secure programs
- despite Unix" documents, and it would be good to (1) fix this in
- LOAD-FOREIGN, and (2) hunt for any other code which uses temporary
- files and make it share the same new safe logic.
-
- (partially alleviated in sbcl-0.7.9.32 by a fix by Matthew Danish to
- make the temporary filename less easily guessable)
-
83:
RANDOM-INTEGER-EXTRA-BITS=10 may not be large enough for the RANDOM
RNG to be high quality near RANDOM-FIXNUM-MAX; it looks as though
if no major problems are found then it is likely that they will be
compiled in unconditionally.
* major incompatible change: LOAD-FOREIGN and LOAD-1-FOREIGN are now
- unsupported operators. To load a shared library into SBCL, use
- SB-ALIEN:LOAD-SHARED-OBJECT. To load a non-shared object file,
- link it into a shared library outside of SBCL and load it using
- SB-ALIEN:LOAD-SHARED-OBJECT.
+ unsupported operators on all platforms. To load a shared library
+ into SBCL, use SB-ALIEN:LOAD-SHARED-OBJECT. To load a non-shared
+ object file, link it into a shared library outside of SBCL and
+ load it using SB-ALIEN:LOAD-SHARED-OBJECT. (incidentally fixes
+ bug #79)
* minor incompatible change: as threatened around sbcl-0.8.0, the
home package of MOP-related symbols is now SB-MOP, not SB-PCL.
The symbols are also exported from SB-PCL for backwards
volatile lispobj all_threads_lock;
extern struct interrupt_data * global_interrupt_data;
-void get_spinlock(volatile lispobj *word,int value);
-
int
initial_thread_trampoline(struct thread *th)
{
32*SIGSTKSZ);
}
+struct thread *find_thread_by_pid(pid_t pid)
+{
+ struct thread *th;
+ for_each_thread(th)
+ if(th->pid==pid) return th;
+ return 0;
+}
+
+#if defined LISP_FEATURE_SB_THREAD
+/* This is not needed unless #+SB-THREAD, as there's a trivial null
+ * unithread definition. */
void reap_dead_threads()
{
struct thread *th,*next,*prev=0;
}
}
-
-struct thread *find_thread_by_pid(pid_t pid)
-{
- struct thread *th;
- for_each_thread(th)
- if(th->pid==pid) return th;
- return 0;
-}
-
/* These are not needed unless #+SB-THREAD, and since sigwaitinfo()
* doesn't seem to be easily available everywhere (OpenBSD...) it's
* more trouble than it's worth to compile it when not needed. */
-#if defined LISP_FEATURE_SB_THREAD
void block_sigcont(void)
{
/* don't allow ourselves to receive SIGCONT while we're in the
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.8.12.42"
+"0.8.12.43"