Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added read_vstring() and write_vstring() to io.c instead of
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
b71d599
..
656f2a2
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-306,17
+306,6
@@
static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
static void read_gen_name(int fd, char *dirname, char *buf)
{
int dlen;
static void read_gen_name(int fd, char *dirname, char *buf)
{
int dlen;
- int len = read_byte(fd);
-
- if (len & 0x80) {
-#if MAXPATHLEN > 32767
- uchar lenbuf[2];
- read_buf(fd, (char *)lenbuf, 2);
- len = (len & ~0x80) * 0x10000 + lenbuf[0] * 0x100 + lenbuf[1];
-#else
- len = (len & ~0x80) * 0x100 + read_byte(fd);
-#endif
- }
if (dirname) {
dlen = strlcpy(buf, dirname, MAXPATHLEN);
if (dirname) {
dlen = strlcpy(buf, dirname, MAXPATHLEN);
@@
-324,12
+313,7
@@
static void read_gen_name(int fd, char *dirname, char *buf)
} else
dlen = 0;
} else
dlen = 0;
- if (dlen + len >= MAXPATHLEN) {
- rprintf(FERROR, "bogus data on generator name pipe\n");
- exit_cleanup(RERR_PROTOCOL);
- }
-
- read_sbuf(fd, buf + dlen, len);
+ read_vstring(fd, buf + dlen, MAXPATHLEN - dlen);
}
}