| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- Index: zlib/infcodes.c
- --- zlib/infcodes.c.orig 2002-03-12 02:14:58.000000000 +0100
- +++ zlib/infcodes.c 2004-04-29 17:21:36.000000000 +0200
- @@ -197,8 +197,18 @@
- c->mode = COPY;
- case COPY: /* o: copying bytes in window, waiting for space */
- f = q - c->sub.copy.dist;
- +#ifdef __FreeBSD__
- + {
- + /* Work-around for a FreeBSD gcc bug. */
- + volatile inflate_blocks_statef *s1 = s;
- +
- + while (f < s1->window) /* modulo window size-"while" instead */
- + f += s1->end - s1->window; /* of "if" handles invalid distances */
- + }
- +#else
- while (f < s->window) /* modulo window size-"while" instead */
- f += s->end - s->window; /* of "if" handles invalid distances */
- +#endif
- while (c->len)
- {
- NEEDOUT
- Index: flist.c
- --- flist.c.orig 2004-04-29 21:37:15.000000000 +0200
- +++ flist.c 2004-05-03 16:11:52.000000000 +0200
- @@ -539,6 +539,7 @@
- rdev_major = 0;
- uid = 0, gid = 0;
- *lastname = '\0';
- + lastdir_len = -1;
- return;
- }
-
- @@ -745,7 +746,7 @@
- char *basename, *dirname, *bp;
- unsigned short flags = 0;
-
- - if (!flist) /* lastdir isn't valid if flist is NULL */
- + if (!flist || !flist->count) /* lastdir isn't valid if flist is NULL */
- lastdir_len = -1;
-
- if (strlcpy(thisname, fname, sizeof thisname)
- =============================================================================
- Security Fix:
- There is a path-sanitizing bug that affects daemon mode in all recent
- rsync versions (including 2.6.2) but only if chroot is disabled. It
- does NOT affect the normal send/receive filenames that specify what
- files should be transferred (this is because these names happen to get
- sanitized twice, and thus the second call removes any lingering leading
- slash(es) that the first call left behind). It does affect certain
- option paths that cause auxilliary files to be read or written. One
- potential fix that doesn't require recompiling rsync is to set "use
- chroot = true" for all the modules in the rsyncd.conf file.
- Index: util.c
- --- util.c.orig 2004-04-27 21:59:37 +0200
- +++ util.c 2004-08-15 11:45:47 +0200
- @@ -743,7 +743,7 @@
- allowdotdot = 1;
- } else {
- p += 2;
- - if (*p == '/')
- + while (*p == '/')
- p++;
- if (sanp != start) {
- /* back up sanp one level */
|