Character.st
changeset 6811 2fec3f732ac6
parent 6808 f45445c6dfdb
child 7019 6591ea303fbd
--- a/Character.st	Tue Oct 22 20:14:36 2002 +0200
+++ b/Character.st	Tue Oct 22 20:17:25 2002 +0200
@@ -140,6 +140,9 @@
         c2 := fetchNext value.
         ascii := c1 asciiValue bitAnd:16r1F.
         ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
+        ascii <= 16r7F ifTrue:[
+            self error:'invalid encoding'.
+        ].
         ^ Character value:ascii        
     ].
     (ascii bitAnd:2r11110000) == 2r11100000 ifTrue:[
@@ -149,6 +152,9 @@
         ascii := c1 asciiValue bitAnd:16r0F.
         ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
         ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
+        ascii <= 16r7FF ifTrue:[
+            self error:'invalid encoding'.
+        ].
         ^ Character value:ascii        
     ].
 
@@ -164,6 +170,9 @@
         ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
         ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
         ascii := (ascii bitShift:6) bitOr:(c4 asciiValue bitAnd:16r3F).
+        ascii <= 16rFFFF ifTrue:[
+            self error:'invalid encoding'.
+        ].
         ^ Character value:ascii        
     ].
 
@@ -178,6 +187,9 @@
         ascii := (ascii bitShift:6) bitOr:(c3 asciiValue bitAnd:16r3F).
         ascii := (ascii bitShift:6) bitOr:(c4 asciiValue bitAnd:16r3F).
         ascii := (ascii bitShift:6) bitOr:(c5 asciiValue bitAnd:16r3F).
+        ascii <= 16r1FFFFF ifTrue:[
+            self error:'invalid encoding'.
+        ].
         ^ Character value:ascii        
     ].
 
@@ -190,6 +202,9 @@
             ascii := (ascii bitShift:6) bitOr:(c2 asciiValue bitAnd:16r3F).
             aStream next.
         ].
+        ascii <= 16r3FFFFFF ifTrue:[
+            self error:'invalid encoding'.
+        ].
         ^ Character value:ascii        
     ].
 
@@ -1391,5 +1406,5 @@
 !Character class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.78 2002-10-22 17:49:31 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Character.st,v 1.79 2002-10-22 18:17:25 cg Exp $'
 ! !