[PATCH] ntdll: Increase size of buffer used to read lines of /proc/cpuinfo
damjan.jov at gmail.com
Mon Nov 29 02:00:55 CST 2010
On Mon, Nov 29, 2010 at 2:03 AM, James Eder <jimportal at gmail.com> wrote:
> On 11/26/10 12:15 AM, Damjan Jovanovic wrote:
>> On Fri, Nov 26, 2010 at 6:56 AM, Vitaliy Margolen
>> <wine-devel at kievinfo.com> wrote:
>>> On 11/24/2010 07:19 PM, James McKenzie wrote:
>>>> On 11/24/10 6:56 PM, Vitaliy Margolen wrote:
>>>>> On 11/24/2010 12:23 PM, jimportal at gmail.com wrote:
>>>>>> From: James Eder<jimportal at gmail.com>
>>>>>> - while (fgets(line,200,f) != NULL)
>>>>>> + while (fgets(line,450,f) != NULL)
>>>>> You might as well then change this to "sizeof(line)".
>>>> Just for my edification, is there not a better way then setting the
>>>> line to a flexible length for this purpose.
>>> Unless I didn't understand your question - you can't set a buffer to a
>>> "variable length". You have to provide fgets() a size of the buffer so it
>>> can read at most that many characters -1 for terminating \0.
>> So read lines dynamically instead:
> It would be nice to not reinvent that wheel all the time. I don't
> suppose your function could be pulled out of winemenubuilder.c and
> placed in a more accessible location. Should I just copy and paste
> it? It's a good function and it would fit just fine in my opinion.
> Alternatively, I doubt 2k or 4k worth of processor features ("flags")
> are going to show up for some years, but I don't know. At any rate,
> at least it would fix it for current systems.
That function is broken by the way, it doesn't preserve the file
pointer across short reads by fgets, and it apparently doesn't even
handle fgets short reads (which return an undocumented NULL).
Feel free to copy and paste it in a more accessible location once I
send patches. There are also other variations of that function
floating around in Wine.
More information about the wine-devel