mISDN: Remove VLAs
There's an ongoing effort to remove VLAs[1] from the kernel to eventually turn on -Wvla. Remove the VLAs from the mISDN code by switching to using kstrdup in one place and using an upper bound in another. Signed-off-by: Laura Abbott <labbott@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b16520f749
commit
9a43816182
|
@ -68,12 +68,12 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
|
|||
goto _do;
|
||||
|
||||
{
|
||||
char _dup[len + 1];
|
||||
char *dup, *tok, *name, *val;
|
||||
int tmp;
|
||||
|
||||
strcpy(_dup, arg);
|
||||
dup = _dup;
|
||||
dup = kstrdup(arg, GFP_ATOMIC);
|
||||
if (!dup)
|
||||
return;
|
||||
|
||||
while ((tok = strsep(&dup, ","))) {
|
||||
if (!strlen(tok))
|
||||
|
@ -89,6 +89,8 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
|
|||
deftaps = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
kfree(dup);
|
||||
}
|
||||
|
||||
_do:
|
||||
|
|
|
@ -279,7 +279,7 @@ l1oip_socket_send(struct l1oip *hc, u8 localcodec, u8 channel, u32 chanmask,
|
|||
u16 timebase, u8 *buf, int len)
|
||||
{
|
||||
u8 *p;
|
||||
u8 frame[len + 32];
|
||||
u8 frame[MAX_DFRAME_LEN_L1 + 32];
|
||||
struct socket *socket = NULL;
|
||||
|
||||
if (debug & DEBUG_L1OIP_MSG)
|
||||
|
@ -902,7 +902,11 @@ handle_dmsg(struct mISDNchannel *ch, struct sk_buff *skb)
|
|||
p = skb->data;
|
||||
l = skb->len;
|
||||
while (l) {
|
||||
ll = (l < L1OIP_MAX_PERFRAME) ? l : L1OIP_MAX_PERFRAME;
|
||||
/*
|
||||
* This is technically bounded by L1OIP_MAX_PERFRAME but
|
||||
* MAX_DFRAME_LEN_L1 < L1OIP_MAX_PERFRAME
|
||||
*/
|
||||
ll = (l < MAX_DFRAME_LEN_L1) ? l : MAX_DFRAME_LEN_L1;
|
||||
l1oip_socket_send(hc, 0, dch->slot, 0,
|
||||
hc->chan[dch->slot].tx_counter++, p, ll);
|
||||
p += ll;
|
||||
|
@ -1140,7 +1144,11 @@ handle_bmsg(struct mISDNchannel *ch, struct sk_buff *skb)
|
|||
p = skb->data;
|
||||
l = skb->len;
|
||||
while (l) {
|
||||
ll = (l < L1OIP_MAX_PERFRAME) ? l : L1OIP_MAX_PERFRAME;
|
||||
/*
|
||||
* This is technically bounded by L1OIP_MAX_PERFRAME but
|
||||
* MAX_DFRAME_LEN_L1 < L1OIP_MAX_PERFRAME
|
||||
*/
|
||||
ll = (l < MAX_DFRAME_LEN_L1) ? l : MAX_DFRAME_LEN_L1;
|
||||
l1oip_socket_send(hc, hc->codec, bch->slot, 0,
|
||||
hc->chan[bch->slot].tx_counter, p, ll);
|
||||
hc->chan[bch->slot].tx_counter += ll;
|
||||
|
|
Loading…
Reference in New Issue