about summary refs log tree commit diff
path: root/Test
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2015-02-20 16:25:47 +0000
committerPeter Stephenson <pws@zsh.org>2015-02-20 16:25:54 +0000
commitb237ba0a8eaa5001283ac8448872021723b90aff (patch)
tree9c7e94bae7f00853ea6ed705229492dd8e9f3f68 /Test
parentdf7a657b10df436e88a4c293cdfa5c7b156fba72 (diff)
downloadzsh-b237ba0a8eaa5001283ac8448872021723b90aff.tar.gz
zsh-b237ba0a8eaa5001283ac8448872021723b90aff.tar.xz
zsh-b237ba0a8eaa5001283ac8448872021723b90aff.zip
34587: ensure multibyte characters don't overflow.
They could start incorporating tokens, with bad karma.

Add test.
Diffstat (limited to 'Test')
-rw-r--r--Test/D07multibyte.ztst20
1 files changed, 15 insertions, 5 deletions
diff --git a/Test/D07multibyte.ztst b/Test/D07multibyte.ztst
index 2cb995346..33e76bee7 100644
--- a/Test/D07multibyte.ztst
+++ b/Test/D07multibyte.ztst
@@ -448,20 +448,30 @@
 0:read passes through invalid multibyte characters
 >0xC5
 
-  word=abcま          
+  word=abcま
   word[-1]=
   print $word
-  word=abcま 
+  word=abcま
   word[-2]=
   print $word
-  word=abcま 
+  word=abcま
   word[4]=d
   print $word
-  word=abcま 
+  word=abcま
   word[3]=not_c
-  print $word  
+  print $word
 0:assignment with negative indices
 >abc
 >abま
 >abcd
 >abnot_cま
+
+  # The following doesn't necessarily need UTF-8, but this gives
+  # us the full effect --- if we parse this wrongly the \xe9
+  # in combination with the tokenized input afterwards looks like a
+  # valid UTF-8 character.  But it isn't.
+  print $'$\xe9#``' >test_bad_param
+  (setopt nonomatch
+  . ./test_bad_param)
+127:Invalid parameter name with following tokenized input
+?./test_bad_param:1: command not found: $\M-i#