diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2013-08-23 10:57:07 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2013-08-23 10:57:07 -0700 |
commit | c365c3558065fca4c11c3f46605d1045763485ab (patch) | |
tree | 9005b8c7afef991fe569928e2cb9a8b2f7e78324 /lisp/emacs-lisp/lisp-mnt.el | |
parent | bb35f42f61663c47d3443a87665462f75dfd3b2c (diff) | |
download | emacs-c365c3558065fca4c11c3f46605d1045763485ab.tar.gz emacs-c365c3558065fca4c11c3f46605d1045763485ab.tar.bz2 emacs-c365c3558065fca4c11c3f46605d1045763485ab.zip |
Don't let very long directory names overrun the stack.
Fix some related minor problems involving "//", vfork.
* callproc.c (encode_current_directory): New function.
(call_process): Don't append "/"; not needed.
* fileio.c (file_name_as_directory_slop): New constant.
(file_name_as_directory): Allow SRC to be longer than SRCLEN;
this can save the caller having to alloca.
(Ffile_name_as_directory, Fdirectory_file_name, Fexpand_file_name):
Use SAFE_ALLOCA, not alloca.
(directory_file_name, Fexpand_file_name): Leave leading "//"
alone, since it can be special even on POSIX platforms.
* callproc.c (call_process):
* process.c (Fformat_network_address):
* sysdep.c (sys_subshell):
Use encode_current_directory rather than rolling our own.
(create_process): No need to encode directory; caller does that now.
* process.h (encode_current_directory): New decl.
* sysdep.c (sys_subshell): Work even if vfork trashes saved_handlers.
Rework to avoid 'goto xyzzy;'.
Diffstat (limited to 'lisp/emacs-lisp/lisp-mnt.el')
0 files changed, 0 insertions, 0 deletions