Buffer overflow fixes.
[silc.git] / lib / silcutil / silcconfig.c
index 692846f6e2b9fa08f01a2377520ea47d553bc404..f179dc1d03df1fa9c8d8aec63a99afe9a589e1c7 100644 (file)
@@ -336,13 +336,9 @@ char *silc_config_read_line(SilcConfigFile *file, SilcUInt32 line)
  found:
   if ((endbuf = strchr(p, '\n'))) {
     len = endbuf - p;
-    ret = silc_calloc(len, sizeof(*ret));
-    strncpy(ret, p, len);
-    ret[len] = '\0';
-  }
-  else {
-    ret = silc_calloc(strlen(p), sizeof(*ret));
-    strcpy(ret, p);
+    ret = silc_memdup(p, len);
+  } else {
+    ret = silc_memdup(p, strlen(p));
   }
   return ret;
 }