1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-23 20:05:32 +02:00

Fix (mkstemp! "XX" 0) errors

* libguile/filesys.c (scm_i_mkstemp): Validate "mode" argument as a
  string, and validate writability of template string early too.  Thanks
  to Jean Louis for the bug report.
This commit is contained in:
Andy Wingo 2017-03-01 14:48:37 +01:00
parent e13cd5c77c
commit a86bb2e613

View file

@ -1475,6 +1475,14 @@ SCM_DEFINE (scm_i_mkstemp, "mkstemp!", 1, 1, 0,
int open_flags, is_binary; int open_flags, is_binary;
SCM port; SCM port;
SCM_VALIDATE_STRING (SCM_ARG1, tmpl);
if (!SCM_UNBNDP (mode))
SCM_VALIDATE_STRING (SCM_ARG2, mode);
/* Ensure tmpl is mutable. */
scm_i_string_start_writing (tmpl);
scm_i_string_stop_writing ();
scm_dynwind_begin (0); scm_dynwind_begin (0);
c_tmpl = scm_to_locale_string (tmpl); c_tmpl = scm_to_locale_string (tmpl);