dav/sync.c

changeset 386
99193580aa9d
parent 381
17ccf828a2f2
child 389
fe855ce911f9
equal deleted inserted replaced
385:85d5049f694b 386:99193580aa9d
2331 } 2331 }
2332 2332
2333 static int isfileindir(SyncDirectory *dir, const char *path, SyncFile *f) { 2333 static int isfileindir(SyncDirectory *dir, const char *path, SyncFile *f) {
2334 char *fullpath; 2334 char *fullpath;
2335 if(path[0] != '/') { 2335 if(path[0] != '/') {
2336 size_t wdlen = 1024; 2336 size_t wdlen = 256;
2337 char *wd = malloc(1024); 2337 char *wd = malloc(wdlen);
2338 while(!getcwd(wd, wdlen)) { 2338 while(!getcwd(wd, wdlen)) {
2339 if(errno == ERANGE) { 2339 if(errno == ERANGE) {
2340 wdlen *= 2; 2340 wdlen *= 2;
2341 wd = realloc(wd, wdlen); 2341 char *newbuf = realloc(wd, wdlen);
2342 if (newbuf) {
2343 wd = newbuf;
2344 } else {
2345 free(wd);
2346 return 0;
2347 }
2342 } else { 2348 } else {
2343 free(wd); 2349 free(wd);
2344 return 0; 2350 return 0;
2345 } 2351 }
2346 } 2352 }
2347 2353
2348 fullpath = util_concat_path(wd, path); 2354 fullpath = util_concat_path(wd, path);
2355 free(wd);
2349 } else { 2356 } else {
2350 fullpath = strdup(path); 2357 fullpath = strdup(path);
2351 } 2358 }
2352 2359
2353 // TODO: normalize path 2360 // TODO: normalize path

mercurial