[PATCH] two corner case fixes to shadow_copy2
Anoop C S
anoopcs at redhat.com
Thu Apr 20 09:55:13 UTC 2017
On Tue, 2017-04-11 at 11:27 -0700, Jeremy Allison via samba-technical wrote:
> On Tue, Apr 11, 2017 at 12:53:25PM +0200, Michael Adam via samba-technical wrote:
> > Hi all,
> >
> > we are hitting a regression with Samba 4.6 and the
> > combination of the shadow_copy2 and glusterfs vfs
> > modules.
> >
> > It seems to have been introduced by the patches of
> > https://bugzilla.samba.org/show_bug.cgi?id=12531
> >
> > It's my fault that I did not notice the patches
> > and the request for review at that time... :-)
> >
> > I still need to do more analysis and testing,
> > but it seems that there are two corner cases
> > that are at least hit when using the glusterfs
> > vfs module that mimicks the share root to "/":
> >
> > 1) make_relative_path does not treat the
> > case of cwd == "/" correctly.
> >
> > 2) shadow_copy2_strip_snapshot does not treat the
> > corner case where the name only consists of
> > "/" followed by the @GMT-token correctly.
> >
> > These corner cases are not coverered by our
> > test cases, and as I said, I need to do more
> > testing (e.g. if this is all), but attached find
> > two patches that fix the above corner cases
> > in a rahter obvious way.
> >
> > Thanks for review...
>
> Yep, good catch. Wish you'd found these
> earlier (I did ask :-). Never mind, better
> late than never.
>
> RB+. Pushed, with an update to the comments
> inline.
>
I have filed https://bugzilla.samba.org/show_bug.cgi?id=12743 for backporting the fixes. Can we have
those cherry-picked backports attached to the bug?
> Jeremy.
>
> > From 76e15576e3144ca87bca3dee0ddba9f60ba04fed Mon Sep 17 00:00:00 2001
> > From: Michael Adam <obnox at samba.org>
> > Date: Tue, 11 Apr 2017 12:03:20 +0200
> > Subject: [PATCH 1/2] s3:vfs:shadow_copy2: fix the corner case if cwd=/ in
> > make_relative_path
> >
> > Signed-off-by: Michael Adam <obnox at samba.org>
> > ---
> > source3/modules/vfs_shadow_copy2.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
> > index f3ec8b6..550c953 100644
> > --- a/source3/modules/vfs_shadow_copy2.c
> > +++ b/source3/modules/vfs_shadow_copy2.c
> > @@ -444,7 +444,10 @@ static bool make_relative_path(const char *cwd, char *abs_path)
> > if (memcmp(abs_path, cwd, cwd_len) != 0) {
> > return false;
> > }
> > - if (abs_path[cwd_len] != '/' && abs_path[cwd_len] != '\0') {
> > + if (cwd_len != 1 &&
> > + abs_path[cwd_len] != '/' &&
> > + abs_path[cwd_len] != '\0')
> > + {
> > return false;
> > }
> > if (abs_path[cwd_len] == '/') {
> > --
> > 2.9.3
> >
> >
> > From 6b095855ecc3038a03278e81f53398bc7c35a8bf Mon Sep 17 00:00:00 2001
> > From: Michael Adam <obnox at samba.org>
> > Date: Tue, 11 Apr 2017 12:03:52 +0200
> > Subject: [PATCH 2/2] s3:vfs:shadow_copy2: fix corner case of "/@GMT-token" in
> > shadow_copy2_strip_snapshot
> >
> > Signed-off-by: Michael Adam <obnox at samba.org>
> > ---
> > source3/modules/vfs_shadow_copy2.c | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> >
> > diff --git a/source3/modules/vfs_shadow_copy2.c b/source3/modules/vfs_shadow_copy2.c
> > index 550c953..d06e321 100644
> > --- a/source3/modules/vfs_shadow_copy2.c
> > +++ b/source3/modules/vfs_shadow_copy2.c
> > @@ -670,10 +670,11 @@ static bool shadow_copy2_strip_snapshot_internal(TALLOC_CTX *mem_ctx,
> > * with a path prefix.
> > */
> > if (pstripped != NULL) {
> > - if (len_before_gmt > 0) {
> > + if (len_before_gmt > 1) {
> > /*
> > - * There is a slash before
> > - * the @GMT-. Remove it.
> > + * There is a path (and not only a slash)
> > + * before the @GMT-. Remove the trailing
> > + * slash character.
> > */
> > len_before_gmt -= 1;
> > }
> > --
> > 2.9.3
> >
>
>
>
>
More information about the samba-technical
mailing list