From 334dde55b0c276c942e38c4258adbfa1f5b43fe1 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 9 Feb 2022 11:05:43 -0700 Subject: [PATCH 1/3] check for pointer being nil before dereferencing it --- CHANGELOG.md | 1 + .../traffic_ops_golang/deliveryservice/request/assign.go | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ca7ec1c830..1dd790a8fc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). ### Fixed - Update traffic_portal dependencies to mitigate `npm audit` issues. - Fixed a cdn-in-a-box build issue when using `RHEL_VERSION=7` +- [#6549](https://github.com/apache/trafficcontrol/issues/6549) Fixed internal server error while deleting a delivery service created from a DSR (Traafic Ops). ### Removed - Remove traffic_portal dependencies to mitigate `npm audit` issues, specifically `grunt-concurrent`, `grunt-contrib-concat`, `grunt-contrib-cssmin`, `grunt-contrib-jsmin`, `grunt-contrib-uglify`, `grunt-contrib-htmlmin`, `grunt-newer`, and `grunt-wiredep` diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go index af1d532a59..9604bcc359 100644 --- a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go +++ b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go @@ -223,9 +223,11 @@ func PutAssignment(w http.ResponseWriter, r *http.Request) { } var resp interface{} if inf.Version.Major >= 4 { - if dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil { - api.HandleErr(w, r, tx, http.StatusBadRequest, errors.New("the longDesc1 and longDesc2 fields are no longer supported in API 4.0 onwards"), nil) - return + if dsr.Requested != nil { + if dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil { + api.HandleErr(w, r, tx, http.StatusBadRequest, errors.New("the longDesc1 and longDesc2 fields are no longer supported in API 4.0 onwards"), nil) + return + } } if dsr.Original != nil { *dsr.Original = dsr.Original.RemoveLD1AndLD2() From 1bff916af0df0378675c4e589e42ef831450a893 Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 9 Feb 2022 13:29:28 -0700 Subject: [PATCH 2/3] combine if statements --- .../traffic_ops_golang/deliveryservice/request/assign.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go index 9604bcc359..a977312408 100644 --- a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go +++ b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go @@ -223,12 +223,11 @@ func PutAssignment(w http.ResponseWriter, r *http.Request) { } var resp interface{} if inf.Version.Major >= 4 { - if dsr.Requested != nil { - if dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil { - api.HandleErr(w, r, tx, http.StatusBadRequest, errors.New("the longDesc1 and longDesc2 fields are no longer supported in API 4.0 onwards"), nil) - return - } + if dsr.Requested != nil && dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil { + api.HandleErr(w, r, tx, http.StatusBadRequest, errors.New("the longDesc1 and longDesc2 fields are no longer supported in API 4.0 onwards"), nil) + return } + if dsr.Original != nil { *dsr.Original = dsr.Original.RemoveLD1AndLD2() } From 5af32a50a915dd0f7be93751cd36d34a3ac6a14c Mon Sep 17 00:00:00 2001 From: Srijeet Chatterjee Date: Wed, 9 Feb 2022 14:23:03 -0700 Subject: [PATCH 3/3] address code review --- .../traffic_ops_golang/deliveryservice/request/assign.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go index a977312408..3f96a28950 100644 --- a/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go +++ b/traffic_ops/traffic_ops_golang/deliveryservice/request/assign.go @@ -223,7 +223,7 @@ func PutAssignment(w http.ResponseWriter, r *http.Request) { } var resp interface{} if inf.Version.Major >= 4 { - if dsr.Requested != nil && dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil { + if dsr.Requested != nil && (dsr.Requested.LongDesc1 != nil || dsr.Requested.LongDesc2 != nil) { api.HandleErr(w, r, tx, http.StatusBadRequest, errors.New("the longDesc1 and longDesc2 fields are no longer supported in API 4.0 onwards"), nil) return }