Merged in the security fixes from 2.5.7.
[rsync/rsync.git] / loadparm.c
index 3dcfc4f..d9ce157 100644 (file)
@@ -441,10 +441,10 @@ static int add_a_service(service *pservice, char *name)
 
   i = iNumServices;
 
-  ServicePtrs = (service **)Realloc(ServicePtrs,sizeof(service *)*num_to_alloc);
+  ServicePtrs = realloc_array(ServicePtrs, service *, num_to_alloc);
 
   if (ServicePtrs)
-         pSERVICE(iNumServices) = (service *)malloc(sizeof(service));
+         pSERVICE(iNumServices) = new(service);
 
   if (!ServicePtrs || !pSERVICE(iNumServices))
          return(-1);
@@ -665,8 +665,8 @@ static BOOL lp_do_parameter(int snum, char *parmname, char *parmvalue)
        string_set(parm_ptr,parmvalue);
        if ((cp = *(char**)parm_ptr) != NULL) {
           int len = strlen(cp);
-          while (len && cp[--len] == '/')
-              cp[len] = '\0';
+          while (len > 1 && cp[len-1] == '/') len--;
+          cp[len] = '\0';
        }
        break;