Skip to content

Commit 7eef36c

Browse files
committed
Guard using options to avoid a crash bug
1 parent 9d7ba23 commit 7eef36c

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

v5/patch.go

+10-2
Original file line numberDiff line numberDiff line change
@@ -142,13 +142,21 @@ func (n *partialDoc) TrustMarshalJSON(buf *bytes.Buffer) error {
142142
if err := buf.WriteByte('{'); err != nil {
143143
return err
144144
}
145+
escaped := true
146+
147+
// n.opts should always be set, but in case we missed a case,
148+
// guard.
149+
if n.opts != nil {
150+
escaped = n.opts.EscapeHTML
151+
}
152+
145153
for i, k := range n.keys {
146154
if i > 0 {
147155
if err := buf.WriteByte(','); err != nil {
148156
return err
149157
}
150158
}
151-
key, err := json.MarshalEscaped(k, n.opts.EscapeHTML)
159+
key, err := json.MarshalEscaped(k, escaped)
152160
if err != nil {
153161
return err
154162
}
@@ -158,7 +166,7 @@ func (n *partialDoc) TrustMarshalJSON(buf *bytes.Buffer) error {
158166
if err := buf.WriteByte(':'); err != nil {
159167
return err
160168
}
161-
value, err := json.MarshalEscaped(n.obj[k], n.opts.EscapeHTML)
169+
value, err := json.MarshalEscaped(n.obj[k], escaped)
162170
if err != nil {
163171
return err
164172
}

0 commit comments

Comments
 (0)