diff options
| author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2006-11-17 10:05:04 -0500 |
|---|---|---|
| committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:24:02 -0500 |
| commit | eafff86d3bd80403c808f67f5389813fdb5bd6c8 (patch) | |
| tree | da04350a38b970c430445a09d225e40daa45cec4 | |
| parent | 0459d70add3f7ca5d433d4b2334cc6ec9ddab05b (diff) | |
[NETROM]: Use kmemdup
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
| -rw-r--r-- | net/netrom/nr_route.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c index c11737f472d6..0096105bcd47 100644 --- a/net/netrom/nr_route.c +++ b/net/netrom/nr_route.c | |||
| @@ -155,14 +155,15 @@ static int nr_add_node(ax25_address *nr, const char *mnemonic, ax25_address *ax2 | |||
| 155 | atomic_set(&nr_neigh->refcount, 1); | 155 | atomic_set(&nr_neigh->refcount, 1); |
| 156 | 156 | ||
| 157 | if (ax25_digi != NULL && ax25_digi->ndigi > 0) { | 157 | if (ax25_digi != NULL && ax25_digi->ndigi > 0) { |
| 158 | if ((nr_neigh->digipeat = kmalloc(sizeof(*ax25_digi), GFP_KERNEL)) == NULL) { | 158 | nr_neigh->digipeat = kmemdup(ax25_digi, |
| 159 | sizeof(*ax25_digi), | ||
| 160 | GFP_KERNEL); | ||
| 161 | if (nr_neigh->digipeat == NULL) { | ||
| 159 | kfree(nr_neigh); | 162 | kfree(nr_neigh); |
| 160 | if (nr_node) | 163 | if (nr_node) |
| 161 | nr_node_put(nr_node); | 164 | nr_node_put(nr_node); |
| 162 | return -ENOMEM; | 165 | return -ENOMEM; |
| 163 | } | 166 | } |
| 164 | memcpy(nr_neigh->digipeat, ax25_digi, | ||
| 165 | sizeof(*ax25_digi)); | ||
| 166 | } | 167 | } |
| 167 | 168 | ||
| 168 | spin_lock_bh(&nr_neigh_list_lock); | 169 | spin_lock_bh(&nr_neigh_list_lock); |
| @@ -432,11 +433,12 @@ static int nr_add_neigh(ax25_address *callsign, ax25_digi *ax25_digi, struct net | |||
| 432 | atomic_set(&nr_neigh->refcount, 1); | 433 | atomic_set(&nr_neigh->refcount, 1); |
| 433 | 434 | ||
| 434 | if (ax25_digi != NULL && ax25_digi->ndigi > 0) { | 435 | if (ax25_digi != NULL && ax25_digi->ndigi > 0) { |
| 435 | if ((nr_neigh->digipeat = kmalloc(sizeof(*ax25_digi), GFP_KERNEL)) == NULL) { | 436 | nr_neigh->digipeat = kmemdup(ax25_digi, sizeof(*ax25_digi), |
| 437 | GFP_KERNEL); | ||
| 438 | if (nr_neigh->digipeat == NULL) { | ||
| 436 | kfree(nr_neigh); | 439 | kfree(nr_neigh); |
| 437 | return -ENOMEM; | 440 | return -ENOMEM; |
| 438 | } | 441 | } |
| 439 | memcpy(nr_neigh->digipeat, ax25_digi, sizeof(*ax25_digi)); | ||
| 440 | } | 442 | } |
| 441 | 443 | ||
| 442 | spin_lock_bh(&nr_neigh_list_lock); | 444 | spin_lock_bh(&nr_neigh_list_lock); |
