]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
more String fixups
authorFrancesco Chemolli <kinkie@squid-cache.org>
Fri, 6 Feb 2009 00:59:06 +0000 (01:59 +0100)
committerFrancesco Chemolli <kinkie@squid-cache.org>
Fri, 6 Feb 2009 00:59:06 +0000 (01:59 +0100)
src/ESISegment.cc
src/access_log.cc
src/urn.cc
src/whois.cc

index 9ecd38838454f197302de79d50985c96d470cdc8..d82e5185e582c9808beefbb7eff69dab6625fd5a 100644 (file)
@@ -236,5 +236,5 @@ ESISegment::dumpOne() const
 {
     String temp;
     temp.limitInit(buf, len);
-    debugs(86, 9, "ESISegment::dumpOne: \"" << temp.unsafeBuf() << "\"");
+    debugs(86, 9, "ESISegment::dumpOne: \"" << temp << "\"");
 }
index 4e95bd8fd96a3a54a7ed6fa1ac07e61c39d60b11..9f7c1f2f378809ac4e9f4ec1b30e84815c6311ec 100644 (file)
@@ -625,7 +625,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
             if (al->request)
                 sb = al->request->header.getByName(fmt->data.header.header);
 
-            out = sb.unsafeBuf();
+            out = sb.termedBuf();
 
             quote = 1;
 
@@ -635,7 +635,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
             if (al->reply)
                 sb = al->reply->header.getByName(fmt->data.header.header);
 
-            out = sb.unsafeBuf();
+            out = sb.termedBuf();
 
             quote = 1;
 
@@ -645,7 +645,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
             if (al->request)
                 sb = al->request->header.getByNameListMember(fmt->data.header.header, fmt->data.header.element, fmt->data.header.separator);
 
-            out = sb.unsafeBuf();
+            out = sb.termedBuf();
 
             quote = 1;
 
@@ -655,7 +655,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
             if (al->reply)
                 sb = al->reply->header.getByNameListMember(fmt->data.header.header, fmt->data.header.element, fmt->data.header.separator);
 
-            out = sb.unsafeBuf();
+            out = sb.termedBuf();
 
             quote = 1;
 
@@ -764,7 +764,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
 
         case LFT_REQUEST_URLPATH:
             if (al->request) {
-                out = al->request->urlpath.unsafeBuf();
+                out = al->request->urlpath.termedBuf();
                 quote = 1;
             }
             break;
@@ -810,7 +810,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
 
         case LFT_TAG:
             if (al->request)
-                out = al->request->tag.unsafeBuf();
+                out = al->request->tag.termedBuf();
 
             quote = 1;
 
@@ -823,7 +823,7 @@ accessLogCustom(AccessLogEntry * al, customlog * log)
 
         case LFT_EXT_LOG:
             if (al->request)
-                out = al->request->extacl_log.unsafeBuf();
+                out = al->request->extacl_log.termedBuf();
 
             quote = 1;
 
index b180aca99ed6b420b7128c5ec9d6866adda189c1..f20f3f9b57b2c47cd76414c2594ac396c9d88aa3 100644 (file)
@@ -57,7 +57,7 @@ public:
     char *getHost (String &urlpath);
     void setUriResFromRequest(HttpRequest *);
     bool RequestNeedsMenu(HttpRequest *r);
-    void updateRequestURL(HttpRequest *r, char const *newPath);
+    void updateRequestURL(HttpRequest *r, char const *newPath, const size_t newPath_len);
     void createUriResRequest (String &uri);
 
     virtual ~UrnState();
@@ -182,13 +182,16 @@ UrnState::getHost (String &urlpath)
 bool
 UrnState::RequestNeedsMenu(HttpRequest *r)
 {
-    return strncasecmp(r->urlpath.unsafeBuf(), "menu.", 5) == 0;
+    if (r->urlpath.size() < 5)
+        return false;
+    //now we're sure it's long enough
+    return strncasecmp(r->urlpath.rawBuf(), "menu.", 5) == 0;
 }
 
 void
-UrnState::updateRequestURL(HttpRequest *r, char const *newPath)
+UrnState::updateRequestURL(HttpRequest *r, char const *newPath, const size_t newPath_len)
 {
-    char *new_path = xstrdup (newPath);
+    char *new_path = xstrndup (newPath, newPath_len);
     r->urlpath = new_path;
     xfree(new_path);
 }
@@ -198,7 +201,7 @@ UrnState::createUriResRequest (String &uri)
 {
     LOCAL_ARRAY(char, local_urlres, 4096);
     char *host = getHost (uri);
-    snprintf(local_urlres, 4096, "http://%s/uri-res/N2L?urn:%s", host, uri.unsafeBuf());
+    snprintf(local_urlres, 4096, "http://%s/uri-res/N2L?urn:%.*s", host, uri.size(), uri.rawBuf());
     safe_free (host);
     safe_free (urlres);
     urlres = xstrdup (local_urlres);
@@ -209,7 +212,7 @@ void
 UrnState::setUriResFromRequest(HttpRequest *r)
 {
     if (RequestNeedsMenu(r)) {
-        updateRequestURL(r, r->urlpath.unsafeBuf() + 5);
+        updateRequestURL(r, r->urlpath.rawBuf() + 5, r->urlpath.size() - 5 );
         flags.force_menu = 1;
     }
 
index 3eb3cfc3b3651c55792d865b1c41f1a5bb7c19e0..7818b8e9bbe1ba39adac392591127cb5f18f9b4d 100644 (file)
@@ -98,7 +98,7 @@ whoisStart(FwdState * fwd)
 
     buf = (char *)xmalloc(l);
 
-    snprintf(buf, l, "%s\r\n", p->request->urlpath.unsafeBuf() + 1);
+    snprintf(buf, l, "%.*s\r\n", p->request->urlpath.size()-1, p->request->urlpath.rawBuf() + 1);
 
     comm_write(fd, buf, strlen(buf), whoisWriteComplete, p, NULL);
     comm_read(fd, p->buf, BUFSIZ, whoisReadReply, p);