- Add two missing includes when configured --disable-inline
- SegFault when newly allocated string set to 0-length.
buf_ may be NULL and buffer overruns on truncate attempt
/*
- * $Id: SquidString.h,v 1.12 2007/11/04 23:59:51 amosjeffries Exp $
+ * $Id: SquidString.h,v 1.12.2.1 2008/02/27 10:47:59 amosjeffries Exp $
*
* DEBUG: section 67 String
* AUTHOR: Duane Wessels
#ifndef SQUID_STRING_H
#define SQUID_STRING_H
+#include "config.h"
+
/* forward decls */
class CacheManager;
/*
- * $Id: String.cci,v 1.10 2007/11/04 23:59:52 amosjeffries Exp $
+ * $Id: String.cci,v 1.10.2.1 2008/02/27 10:47:59 amosjeffries Exp $
*
* DEBUG: section 67 String
* AUTHOR: Duane Wessels
*
*/
+#include "assert.h"
+
String::String() : size_(0), len_(0), buf_ (NULL)
{
#if DEBUGSTRINGS
if(newLength < 0 || newLength > len_) return;
len_ = newLength;
+
+ if(len_ == 0 && buf_ == NULL) return; // buf_ may be NULL on zero-length strings.
buf_[newLength] = '\0';
}