Messages in this thread | | | Subject | Re: [PATCH] tty: n_hdlc: Use flexible-array member | From | "Gustavo A. R. Silva" <> | Date | Tue, 21 Jan 2020 09:24:28 -0600 |
| |
On 1/21/20 09:14, Gustavo A. R. Silva wrote: > > > On 1/21/20 09:00, Mikael Magnusson wrote: >> Gustavo Silva wrote: >>> On 1/20/20 23:54, Jiri Slaby wrote: >>>> On 21. 01. 20, 0:45, Gustavo A. R. Silva wrote: >>>>> diff --git a/drivers/tty/n_hdlc.c b/drivers/tty/n_hdlc.c >>>>> index 98361acd3053..b5499ca8757e 100644 >>>>> --- a/drivers/tty/n_hdlc.c >>>>> +++ b/drivers/tty/n_hdlc.c >>>>> @@ -115,7 +115,7 @@ >>>>> struct n_hdlc_buf { >>>>> struct list_head list_item; >>>>> int count; >>>>> - char buf[1]; >>>>> + char buf[]; >>>>> }; >>>>> >>>>> #define N_HDLC_BUF_SIZE (sizeof(struct n_hdlc_buf) + maxframe) >>>> >>>> Have you checked, that you don't have to "+ 1" here now? >>>> >>> >>> Yep. That's not necessary. >>> >>> _In terms of memory allocation_, zero-length/one-element arrays and flexible-array >>> members work exactly the same way. >> >> This is not true, but maybe it's still not necessary in this particular code, I didn't examine it. >> > > I should have said _in terms of dynamic memory allocation_. > > Your example is correct: > > "... a one-element array always occupies at least as much space as a single object of the type."[1] > > But the above does not affect on the current code. >
Oh wait! Yeah; I see the issue in #define N_HDLC_BUF_SIZE (sizeof(struct n_hdlc_buf) + maxframe) now...
I need to double check this.
Thanks for the feedback! -- Gustavo
| |