koush / AndroidAsync

Asynchronous socket, http(s) (client+server) and websocket library for android. Based on nio, not threads.
Other
7.51k stars 1.56k forks source link

handle url decode exceptions #696

Open skykit-adamvernier opened 3 years ago

skykit-adamvernier commented 3 years ago

If a url is requested that contains a % character the server will crash. This change will handle exceptions from UrlDecoder.

java.lang.IllegalArgumentException: URLDecoder: Incomplete trailing escape (%) pattern at java.net.URLDecoder.decode(URLDecoder.java:196) at java.net.URLDecoder.decode(URLDecoder.java:101) at com.koushikdutta.async.http.server.AsyncHttpServer$1$1.onBody(AsyncHttpServer.java:111) at com.koushikdutta.async.http.server.AsyncHttpServerRequestImpl$2.onStringAvailable(AsyncHttpServerRequestImpl.java:83) at com.koushikdutta.async.LineEmitter.onDataAvailable(LineEmitter.java:42) at com.koushikdutta.async.Util.emitAllData(Util.java:23) at com.koushikdutta.async.AsyncSSLSocketWrapper.onDataAvailable(AsyncSSLSocketWrapper.java:335) at com.koushikdutta.async.AsyncSSLSocketWrapper$6.onDataAvailable(AsyncSSLSocketWrapper.java:322) at com.koushikdutta.async.Util.emitAllData(Util.java:23) at com.koushikdutta.async.AsyncNetworkSocket.onReadable(AsyncNetworkSocket.java:160) at com.koushikdutta.async.AsyncServer.runLoop(AsyncServer.java:878) at com.koushikdutta.async.AsyncServer.run(AsyncServer.java:726) at com.koushikdutta.async.AsyncServer.access$800(AsyncServer.java:46) at com.koushikdutta.async.AsyncServer$8.run(AsyncServer.java:680)

hyUrbanManager commented 11 months ago

same problem.