]> git.tdb.fi Git - libs/net.git/blobdiff - source/http/response.cpp
Reject HTTP messages starting with a linefeed
[libs/net.git] / source / http / response.cpp
index ede249b7e11afa467e5423f4c4a54faa091fc59c..6fa4cc333a58d6c4bee716987428310bdc6daf85 100644 (file)
@@ -1,4 +1,4 @@
-#include <msp/strings/formatter.h>
+#include <msp/strings/format.h>
 #include <msp/strings/utils.h>
 #include "response.h"
 
@@ -23,8 +23,10 @@ Response Response::parse(const string &str)
 {
        Response result;
 
-       unsigned lf = str.find('\n');
-       vector<string> parts = split(str.substr(0, lf), ' ', 2);
+       string::size_type lf = str.find('\n');
+       if(lf==0)
+               throw invalid_argument("Response::parse");
+       vector<string> parts = split(str.substr(0, lf-(str[lf-1]=='\r')), ' ', 2);
        if(parts.size()<2)
                throw invalid_argument("Response::parse");