X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/366345fe05a44b2d08aedb1c8e4b6d7ce1aedeeb..5d6bcd4472d7a88adc9be81987f02b58332e432c:/util.c diff --git a/util.c b/util.c index 1a041a3f..357b8308 100644 --- a/util.c +++ b/util.c @@ -32,7 +32,7 @@ int num_waiting(int fd) } -struct map_struct *map_file(int fd,off_t len) +struct map_struct *map_file(int fd,OFF_T len) { struct map_struct *ret; ret = (struct map_struct *)malloc(sizeof(*ret)); @@ -47,14 +47,18 @@ struct map_struct *map_file(int fd,off_t len) ret->p_len = 0; #ifdef HAVE_MMAP - if (len < MAX_MAP_SIZE) - ret->map = (char *)mmap(NULL,len,PROT_READ,MAP_SHARED,fd,0); + if (len < MAX_MAP_SIZE) { + ret->map = (char *)mmap(NULL,len,PROT_READ,MAP_SHARED,fd,0); + if (ret->map == (char *)-1) { + ret->map = NULL; + } + } #endif return ret; } -char *map_ptr(struct map_struct *map,off_t offset,int len) +char *map_ptr(struct map_struct *map,OFF_T offset,int len) { int nread = -2; @@ -83,7 +87,7 @@ char *map_ptr(struct map_struct *map,off_t offset,int len) map->p_size = len; } - if (lseek(map->fd,offset,SEEK_SET) != offset || + if (do_lseek(map->fd,offset,SEEK_SET) != offset || (nread=read(map->fd,map->p,len)) != len) { fprintf(FERROR,"EOF in map_ptr! (offset=%d len=%d nread=%d errno=%d)\n", (int)offset, len, nread, errno); @@ -298,7 +302,7 @@ int create_directory_path(char *fname) p = fname; while ((p=strchr(p,'/'))) { *p = 0; - mkdir(fname,0777 & ~orig_umask); + do_mkdir(fname,0777 & ~orig_umask); *p = '/'; p++; }