X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6574b4f7d938a90a158ba31c03942f8170452df4..ce2ac5ac3ff1f4e3a14eb9b316de6804ca747181:/flist.c diff --git a/flist.c b/flist.c index 2ec8318a..1ae8c341 100644 --- a/flist.c +++ b/flist.c @@ -316,12 +316,15 @@ static void send_file_name(int f,struct file_list *flist,char *fname) if (!file) return; if (flist->count >= flist->malloced) { - flist->malloced += 100; - flist->files = (struct file_struct *)realloc(flist->files, - sizeof(flist->files[0])* - flist->malloced); - if (!flist->files) - out_of_memory("send_file_name"); + if (flist->malloced < 100) + flist->malloced += 100; + else + flist->malloced *= 1.8; + flist->files = (struct file_struct *)realloc(flist->files, + sizeof(flist->files[0])* + flist->malloced); + if (!flist->files) + out_of_memory("send_file_name"); } if (strcmp(file->name,"/")) { @@ -504,12 +507,15 @@ struct file_list *recv_file_list(int f) int i = flist->count; if (i >= flist->malloced) { - flist->malloced += 100; - flist->files =(struct file_struct *)realloc(flist->files, - sizeof(flist->files[0])* - flist->malloced); - if (!flist->files) - goto oom; + if (flist->malloced < 100) + flist->malloced += 100; + else + flist->malloced *= 1.8; + flist->files =(struct file_struct *)realloc(flist->files, + sizeof(flist->files[0])* + flist->malloced); + if (!flist->files) + goto oom; } receive_file_entry(&flist->files[i],flags,f);