Commit ea64063f authored by Daniel Colascione's avatar Daniel Colascione
Browse files

Do not read unitialized memory in conv_sockaddr_to_lisp

parent aa465907
2014-03-21 Daniel Colascione <dancol@dancol.org>
* mail/emacsbug.el (report-emacs-bug): Include memory usage
information in bug reports.
2014-03-21 Glenn Morris <rgm@gnu.org>
 
* Makefile.in ($(MH_E_DIR)/mh-loaddefs.el)
......
......@@ -322,6 +322,10 @@ usually do not have translators for other languages.\n\n")))
shadows)))
(insert (format "\nFeatures:\n%s\n" features))
(fill-region (line-beginning-position 0) (point))
(insert (format "\nMemory information:\n"))
(pp (garbage-collect) (current-buffer))
;; This is so the user has to type something in order to send easily.
(use-local-map (nconc (make-sparse-keymap) (current-local-map)))
(define-key (current-local-map) "\C-c\C-i" 'info-emacs-bug)
......
2014-03-22 Daniel Colascione <dancol@dancol.org>
* process.c (conv_sockaddr_to_lisp): When extracting the string
names of AF_LOCAL sockets, stop before reading uninitialized
memory.
2014-03-21 Daniel Colascione <dancol@dancol.org>
* xterm.c (x_bitmap_icon): Stop reading the icon bitmap from disk
......
......@@ -2010,10 +2010,22 @@ conv_sockaddr_to_lisp (struct sockaddr *sa, int len)
case AF_LOCAL:
{
struct sockaddr_un *sockun = (struct sockaddr_un *) sa;
for (i = 0; i < sizeof (sockun->sun_path); i++)
if (sockun->sun_path[i] == 0)
break;
return make_unibyte_string (sockun->sun_path, i);
ptrdiff_t name_length = len - offsetof (struct sockaddr_un, sun_path);
/* If the first byte is NUL, the name is a Linux abstract
socket name, and the name can contain embedded NULs. If
it's not, we have a NUL-terminated string. Be careful not
to walk past the end of the object looking for the name
terminator, however. */
if (name_length > 0 && sockun->sun_path[0] != '\0')
{
const char* terminator =
memchr (sockun->sun_path, '\0', name_length);
if (terminator)
name_length = terminator - (const char*) sockun->sun_path;
}
return make_unibyte_string (sockun->sun_path, name_length);
}
#endif
default:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment