[bug] URL decodedFields causes ArgumentOutOfRange exception

Nikita Kalinin <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.gnu.general
Message-ID <type=project&nid=863&[email protected]>
Issue status update for 
http://smalltalk.gnu.org/project/issue/863
Post a follow up: 
http://smalltalk.gnu.org/project/comments/add/863

 Project:      GNU Smalltalk
 Version:      <none>
 Component:    NetClients
 Category:     bug reports
 Priority:     normal
 Assigned to:  Unassigned
 Reported by:  nixo
 Updated by:   nixo
 Status:       active

url := URL fromString: '?key=value'.
fields := url decodedFields.
fields printNl.


Object: 'key=value' error: Invalid argument 0: argument must be between
4 and 9
SystemExceptions.ArgumentOutOfRange(Smalltalk.Exception)>>signal
(ExcHandling.st:254)
SystemExceptions.ArgumentOutOfRange(Smalltalk.Exception)>>signal:
(ExcHandling.st:264)
SystemExceptions.ArgumentOutOfRange class>>signalOn:mustBeBetween:and:
(SysExcept.st:599)
Smalltalk.String(Smalltalk.ArrayedCollection)>>copyFrom:to:
(ArrayColl.st:230)
[] in URL>>decodedFields (URL.st:535)
Smalltalk.OrderedCollection>>do: (OrderColl.st:68)
URL>>decodedFields (URL.st:541)
Smalltalk.UndefinedObject>>executeStatements (test.st:3)
nil

It seems to be a typo in this method. The size of 'key=value' is needed
when extracting the 'value':


keyValue size
But found:


value size
So after fixing:


LookupTable (
	'key'->'value'
)

*Patch*


--- URL.st      2014-08-16 15:47:28.156523910 +0400
+++ URL_patch.st        2014-08-16 15:48:45.112521892 +0400
@@ -525,7 +525,7 @@
                key := keyValue copyFrom: 1 to: i - 1.
                i < keyValue size
                    ifTrue:
-                       [value := keyValue copyFrom: i + 1 to: value
size.
+                       [value := keyValue copyFrom: i + 1 to: keyValue
size.
                        value := URL decode: value].
                self
                    add: key
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.