Commit 20e9fc73 authored by Yang Tse's avatar Yang Tse
Browse files

Fix problem in strdup replacement when dealing with absolutely huge strings.

parent bad6410d
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -6,6 +6,10 @@

                                  Changelog

Yang Tse (6 Feb 2008)
- Fix an issue in strdup replacement function when dealing with absolutely
  huge strings. Only systems without a standard strdup would be affected.

Daniel S (3 Feb 2008)
- Dmitry Kurochkin cleaned up the pipelining code and removed the need for and
  use of the "is_in_pipeline" struct field.
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ This release includes the following changes:
This release includes the following bugfixes:

 o improved pipelining
 o improved strdup replacement

This release includes the following known bugs:

+6 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
 *                            | (__| |_| |  _ <| |___
 *                             \___|\___/|_| \_\_____|
 *
 * Copyright (C) 1998 - 2007, Daniel Stenberg, <daniel@haxx.se>, et al.
 * Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution. The terms
@@ -27,13 +27,17 @@
#ifndef HAVE_STRDUP
char *curlx_strdup(const char *str)
{
  int len;
  size_t len;
  char *newstr;

  if(!str)
    return (char *)NULL;

  len = strlen(str);

  if(len >= ((size_t)-1) / sizeof(char))
    return (char *)NULL;

  newstr = (char *) malloc((len+1)*sizeof(char));
  if(!newstr)
    return (char *)NULL;