]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/xml: fix race using finfo.parents in s.trim
authorRuss Cox <rsc@golang.org>
Mon, 27 Jul 2015 17:52:04 +0000 (13:52 -0400)
committerRuss Cox <rsc@golang.org>
Mon, 27 Jul 2015 18:03:45 +0000 (18:03 +0000)
This race was identified in #9796, but a sequence of fixes
proposed in golang.org/cl/4152 were rolled into
golang.org/cl/5910 which both fixed the race and
modified the name space behavior.

We rolled back the name space changes and lost the race fix.

Fix the race separate from the name space changes,
following the suggestion made by Roger Peppe in
https://go-review.googlesource.com/#/c/4152/7/src/encoding/xml/marshal.go@897

Fixes #9796.
Fixes #11885.

Change-Id: Ib2b68982da83dee9e04db8b8465a8295259bba46
Reviewed-on: https://go-review.googlesource.com/12687
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>

src/encoding/xml/marshal.go

index b8dad494fb3d0606c2d32ba575ff5fc77f675cec..86d1422a5bd53fbc458c358079e5e0940b9161c5 100644 (file)
@@ -945,7 +945,7 @@ func (s *parentStack) trim(parents []string) error {
                        return err
                }
        }
-       s.stack = parents[:split]
+       s.stack = s.stack[:split]
        return nil
 }