summaryrefslogtreecommitdiff
path: root/src/editfns.c
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-03-25 07:20:08 +0000
committerKarl Heuer <kwzh@gnu.org>1994-03-25 07:20:08 +0000
commitb22e7ecc3f041dfe12c6bda14a8b2b5f7e8173c3 (patch)
tree436b18c5729f4dfbef53e7eca6e6ee5f17d29e41 /src/editfns.c
parentba32f2db71110396e28e6c1841dfdd2aa5daa68c (diff)
downloademacs-b22e7ecc3f041dfe12c6bda14a8b2b5f7e8173c3.tar.gz
(Fformat): Validate number and type of arguments.
Diffstat (limited to 'src/editfns.c')
-rw-r--r--src/editfns.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/editfns.c b/src/editfns.c
index 037c00d3c8b..e3863c5f117 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1463,7 +1463,7 @@ Use %% to put a single % into the output.")
if (*format == '%')
format++;
else if (++n >= nargs)
- ;
+ error ("format string wants too many arguments");
else if (*format == 'S')
{
/* For `S', prin1 the argument and then treat like a string. */
@@ -1480,6 +1480,8 @@ Use %% to put a single % into the output.")
else if (XTYPE (args[n]) == Lisp_String)
{
string:
+ if (*format != 's' && *format != 'S')
+ error ("format specifier doesn't match argument type");
total += XSTRING (args[n])->size;
}
/* Would get MPV otherwise, since Lisp_Int's `point' to low memory. */