|
@@ -196,10 +196,10 @@ void tcp_get_allowed_congestion_control(char *buf, size_t maxlen)
|
|
|
int tcp_set_allowed_congestion_control(char *val)
|
|
int tcp_set_allowed_congestion_control(char *val)
|
|
|
{
|
|
{
|
|
|
struct tcp_congestion_ops *ca;
|
|
struct tcp_congestion_ops *ca;
|
|
|
- char *clone, *name;
|
|
|
|
|
|
|
+ char *saved_clone, *clone, *name;
|
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
|
|
|
|
- clone = kstrdup(val, GFP_USER);
|
|
|
|
|
|
|
+ saved_clone = clone = kstrdup(val, GFP_USER);
|
|
|
if (!clone)
|
|
if (!clone)
|
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|
|
|
|
|
|
|
@@ -226,6 +226,7 @@ int tcp_set_allowed_congestion_control(char *val)
|
|
|
}
|
|
}
|
|
|
out:
|
|
out:
|
|
|
spin_unlock(&tcp_cong_list_lock);
|
|
spin_unlock(&tcp_cong_list_lock);
|
|
|
|
|
+ kfree(saved_clone);
|
|
|
|
|
|
|
|
return ret;
|
|
return ret;
|
|
|
}
|
|
}
|