diff --git a/adapters/rubicon/rubicon.go b/adapters/rubicon/rubicon.go index f248a1d358..c91e4805d5 100644 --- a/adapters/rubicon/rubicon.go +++ b/adapters/rubicon/rubicon.go @@ -436,33 +436,26 @@ func (a *RubiconAdapter) MakeRequests(request *openrtb2.BidRequest, reqInfo *ada rubiconRequest.App = &appCopy } - if request.Source != nil { - var sourceCopy openrtb2.Source - if request.Source != nil { - sourceCopy = *request.Source - } else { - sourceCopy = openrtb2.Source{} - } + if request.Source != nil && request.Source.SChain != nil { + sourceCopy := *request.Source - if sourceCopy.SChain != nil { - var sourceCopyExt openrtb_ext.ExtSource - if sourceCopy.Ext != nil { - if err = jsonutil.Unmarshal(sourceCopy.Ext, &sourceCopyExt); err != nil { - errs = append(errs, &errortypes.BadInput{Message: err.Error()}) - continue - } - } else { - sourceCopyExt = openrtb_ext.ExtSource{} + var sourceCopyExt openrtb_ext.ExtSource + if sourceCopy.Ext != nil { + if err = jsonutil.Unmarshal(sourceCopy.Ext, &sourceCopyExt); err != nil { + errs = append(errs, &errortypes.BadInput{Message: err.Error()}) + continue } + } else { + sourceCopyExt = openrtb_ext.ExtSource{} + } - sourceCopyExt.SChain = sourceCopy.SChain - sourceCopy.SChain = nil + sourceCopyExt.SChain = sourceCopy.SChain + sourceCopy.SChain = nil - sourceCopy.Ext, err = json.Marshal(&sourceCopyExt) - if err != nil { - errs = append(errs, err) - continue - } + sourceCopy.Ext, err = json.Marshal(&sourceCopyExt) + if err != nil { + errs = append(errs, err) + continue } rubiconRequest.Source = &sourceCopy