ucx/string.c

changeset 24
e04822101291
parent 20
db7d9860dbbd
child 30
23bb65cbf7a4
     1.1 --- a/ucx/string.c	Sun Jan 15 14:20:25 2012 +0100
     1.2 +++ b/ucx/string.c	Wed Feb 08 23:43:02 2012 +0100
     1.3 @@ -34,6 +34,7 @@
     1.4          sstr_t str = va_arg(ap, sstr_t);
     1.5          size += str.length;
     1.6      }
     1.7 +    va_end(ap);
     1.8  
     1.9      return size;
    1.10  }
    1.11 @@ -48,6 +49,7 @@
    1.12          s.ptr = strncat (s.ptr, str.ptr, s.length);
    1.13          str = va_arg (ap, sstr_t);
    1.14      }
    1.15 +    va_end(ap);
    1.16  
    1.17      return s;
    1.18  }
    1.19 @@ -62,6 +64,7 @@
    1.20          sstr_t str = va_arg (ap, sstr_t);
    1.21          s.ptr = strncat (s.ptr, str.ptr, s.length);
    1.22      }
    1.23 +    va_end(ap);
    1.24  
    1.25      return s;
    1.26  }
    1.27 @@ -89,11 +92,13 @@
    1.28  
    1.29  sstr_t sstrdub(sstr_t s) {
    1.30      sstr_t newstring;
    1.31 -    newstring.ptr = malloc(s.length + 1);
    1.32 -    newstring.length = s.length;
    1.33 -    newstring.ptr[newstring.length] = 0;
    1.34 +    newstring.ptr = (char*) malloc(s.length + 1);
    1.35 +    if (newstring.ptr != NULL) {
    1.36 +        newstring.length = s.length;
    1.37 +        newstring.ptr[newstring.length] = 0;
    1.38  
    1.39 -    memcpy(newstring.ptr, s.ptr, s.length);
    1.40 +        memcpy(newstring.ptr, s.ptr, s.length);
    1.41 +    }
    1.42  
    1.43      return newstring;
    1.44  }

mercurial