[PATCH] ntdll: Increase size of buffer used to read lines of /proc/cpuinfo

Damjan Jovanovic damjan.jov at gmail.com
Mon Nov 29 02:29:17 CST 2010


On Mon, Nov 29, 2010 at 10:00 AM, Damjan Jovanovic <damjan.jov at gmail.com> wrote:
> 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
>>>>> variable
>>>>> 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.
>>>>
>>>> Vitaliy.
>>>>
>>>>
>>>>
>>> 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.
>>
>> --
>> Jim
>
> 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.
>
> Damjan
>

Sorry, next_line() works perfectly, I was just using it wrongly
(non-NULL line initially passed in).

Damjan



More information about the wine-devel mailing list