From ab7335dfe36fad42c9cd672a65f1843a207694fd Mon Sep 17 00:00:00 2001 From: Colin Adler Date: Wed, 28 Sep 2022 17:00:01 -0500 Subject: [PATCH] fix(audit): only generate diff on request success --- coderd/audit/request.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/coderd/audit/request.go b/coderd/audit/request.go index eed6ae5dc5afb..c23ad2b1f7339 100644 --- a/coderd/audit/request.go +++ b/coderd/audit/request.go @@ -110,8 +110,18 @@ func InitRequest[T Auditable](w http.ResponseWriter, p *RequestParams) (*Request return } - diff := Diff(p.Audit, req.Old, req.New) - diffRaw, _ := json.Marshal(diff) + var diffRaw = []byte("{}") + // Only generate diffs if the request succeeded. + if sw.Status < 400 { + diff := Diff(p.Audit, req.Old, req.New) + + var err error + diffRaw, err = json.Marshal(diff) + if err != nil { + p.Log.Warn(logCtx, "marshal diff", slog.Error(err)) + diffRaw = []byte("{}") + } + } ip, err := parseIP(p.Request.RemoteAddr) if err != nil {