nfsd4: fix xdr4 inclusion of escaped char
authorBenjamin Coddington <bcodding@redhat.com>
Sun, 7 Dec 2014 21:05:47 +0000 (16:05 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 9 Dec 2014 20:51:30 +0000 (15:51 -0500)
Fix a bug where nfsd4_encode_components_esc() includes the esc_end char as
an additional string encoding.

Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
Cc: stable@vger.kernel.org
Fixes: e7a0444aef4a "nfsd: add IPv6 addr escaping to fs_location hosts"
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4xdr.c

index 8880ec8cfd11771b3f3fdda3fb362fc7c5beca08..a8549f8fef57399b08dbe745a535f83de927299c 100644 (file)
@@ -1812,6 +1812,9 @@ static __be32 nfsd4_encode_components_esc(struct xdr_stream *xdr, char sep,
                }
                else
                        end++;
+               if (found_esc)
+                       end = next;
+
                str = end;
        }
        pathlen = htonl(xdr->buf->len - pathlen_offset);