aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/target/iscsi/iscsi_target_parameters.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/drivers/target/iscsi/iscsi_target_parameters.c b/drivers/target/iscsi/iscsi_target_parameters.c
index 90b740048f26..839def0dd57c 100644
--- a/drivers/target/iscsi/iscsi_target_parameters.c
+++ b/drivers/target/iscsi/iscsi_target_parameters.c
@@ -154,22 +154,18 @@ static struct iscsi_param *iscsi_set_default_param(struct iscsi_param_list *para
154 } 154 }
155 INIT_LIST_HEAD(&param->p_list); 155 INIT_LIST_HEAD(&param->p_list);
156 156
157 param->name = kzalloc(strlen(name) + 1, GFP_KERNEL); 157 param->name = kstrdup(name, GFP_KERNEL);
158 if (!param->name) { 158 if (!param->name) {
159 pr_err("Unable to allocate memory for parameter name.\n"); 159 pr_err("Unable to allocate memory for parameter name.\n");
160 goto out; 160 goto out;
161 } 161 }
162 162
163 param->value = kzalloc(strlen(value) + 1, GFP_KERNEL); 163 param->value = kstrdup(value, GFP_KERNEL);
164 if (!param->value) { 164 if (!param->value) {
165 pr_err("Unable to allocate memory for parameter value.\n"); 165 pr_err("Unable to allocate memory for parameter value.\n");
166 goto out; 166 goto out;
167 } 167 }
168 168
169 memcpy(param->name, name, strlen(name));
170 param->name[strlen(name)] = '\0';
171 memcpy(param->value, value, strlen(value));
172 param->value[strlen(value)] = '\0';
173 param->phase = phase; 169 param->phase = phase;
174 param->scope = scope; 170 param->scope = scope;
175 param->sender = sender; 171 param->sender = sender;
@@ -635,11 +631,8 @@ void iscsi_release_param_list(struct iscsi_param_list *param_list)
635 list_del(&param->p_list); 631 list_del(&param->p_list);
636 632
637 kfree(param->name); 633 kfree(param->name);
638 param->name = NULL;
639 kfree(param->value); 634 kfree(param->value);
640 param->value = NULL;
641 kfree(param); 635 kfree(param);
642 param = NULL;
643 } 636 }
644 637
645 iscsi_release_extra_responses(param_list); 638 iscsi_release_extra_responses(param_list);
@@ -687,15 +680,12 @@ int iscsi_update_param_value(struct iscsi_param *param, char *value)
687{ 680{
688 kfree(param->value); 681 kfree(param->value);
689 682
690 param->value = kzalloc(strlen(value) + 1, GFP_KERNEL); 683 param->value = kstrdup(value, GFP_KERNEL);
691 if (!param->value) { 684 if (!param->value) {
692 pr_err("Unable to allocate memory for value.\n"); 685 pr_err("Unable to allocate memory for value.\n");
693 return -ENOMEM; 686 return -ENOMEM;
694 } 687 }
695 688
696 memcpy(param->value, value, strlen(value));
697 param->value[strlen(value)] = '\0';
698
699 pr_debug("iSCSI Parameter updated to %s=%s\n", 689 pr_debug("iSCSI Parameter updated to %s=%s\n",
700 param->name, param->value); 690 param->name, param->value);
701 return 0; 691 return 0;