Skip to content

Commit 6c6b3a2

Browse files
authored
Fix nil pointer dereferences during error handling (#364)
* Fix error handling when deleting deploy key There was the possibility of a panic if response was nil, and the GitLab client already treats the 204 code as a success, so the extra check was not needed. * Fix nil pointer dereference issues in error messages
1 parent 811dbf5 commit 6c6b3a2

File tree

3 files changed

+9
-13
lines changed

3 files changed

+9
-13
lines changed

gitlab/resource_gitlab_deploy_key.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,8 @@ func resourceGitlabDeployKeyDelete(d *schema.ResourceData, meta interface{}) err
9898
}
9999
log.Printf("[DEBUG] Delete gitlab deploy key %s", d.Id())
100100

101-
response, err := client.DeployKeys.DeleteDeployKey(project, deployKeyID)
101+
_, err = client.DeployKeys.DeleteDeployKey(project, deployKeyID)
102102

103-
// HTTP 204 is success with no body
104-
if response.StatusCode == 204 {
105-
return nil
106-
}
107103
return err
108104
}
109105

gitlab/resource_gitlab_pipeline_schedule.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,9 @@ func resourceGitlabPipelineScheduleDelete(d *schema.ResourceData, meta interface
164164
return fmt.Errorf("%s cannot be converted to int", d.Id())
165165
}
166166

167-
resp, err := client.PipelineSchedules.DeletePipelineSchedule(project, pipelineScheduleID)
168-
if err != nil {
169-
return fmt.Errorf("%s failed to delete pipeline schedule: %s", d.Id(), resp.Status)
167+
if _, err = client.PipelineSchedules.DeletePipelineSchedule(project, pipelineScheduleID); err != nil {
168+
return fmt.Errorf("failed to delete pipeline schedule %q: %w", d.Id(), err)
170169
}
171-
return err
170+
171+
return nil
172172
}

gitlab/resource_gitlab_pipeline_schedule_variable.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,9 @@ func resourceGitlabPipelineScheduleVariableDelete(d *schema.ResourceData, meta i
122122
variableKey := d.Get("key").(string)
123123
scheduleID := d.Get("pipeline_schedule_id").(int)
124124

125-
_, resp, err := client.PipelineSchedules.DeletePipelineScheduleVariable(project, scheduleID, variableKey)
126-
if err != nil {
127-
return fmt.Errorf("%s failed to delete pipeline schedule variable: %s", d.Id(), resp.Status)
125+
if _, _, err := client.PipelineSchedules.DeletePipelineScheduleVariable(project, scheduleID, variableKey); err != nil {
126+
return fmt.Errorf("failed to delete pipeline schedule variable %q: %w", d.Id(), err)
128127
}
129-
return err
128+
129+
return nil
130130
}

0 commit comments

Comments
 (0)