[PATCH 02/25] pthread_setaffinity (Linux variant): Rewrite to use VLA instead of alloca

Florian Weimer fweimer@redhat.com
Mon Mar 16 14:49:00 GMT 2015


On 03/16/2015 03:49 PM, Andreas Schwab wrote:
> Florian Weimer <fweimer@redhat.com> writes:
> 
>> @@ -27,26 +26,29 @@
>>  size_t __kernel_cpumask_size attribute_hidden;
>>  
>>  
>> -/* Determine the current affinity.  As a side affect we learn
>> -   about the size of the cpumask_t in the kernel.  */
>> +/* Determine the size of cpumask_t in the kernel.  */
>>  int
>>  __determine_cpumask_size (pid_t tid)
>>  {
>> -  INTERNAL_SYSCALL_DECL (err);
>> -  int res;
>> -
>>    size_t psize = 128;
>> -  void *p = alloca (psize);
>> -
>> -  while (res = INTERNAL_SYSCALL (sched_getaffinity, err, 3, tid, psize, p),
>> -	 INTERNAL_SYSCALL_ERROR_P (res, err)
>> -	 && INTERNAL_SYSCALL_ERRNO (res, err) == EINVAL)
>> -    p = extend_alloca (p, psize, 2 * psize);
>> +  int res;
>>  
>> -  if (res == 0 || INTERNAL_SYSCALL_ERROR_P (res, err))
>> -    return INTERNAL_SYSCALL_ERRNO (res, err);
>> +  for (psize = 128; ; psize *= 2)
> 
> The assignment is redundant.

It is; I'll drop it from the initialization.

-- 
Florian Weimer / Red Hat Product Security



More information about the Libc-alpha mailing list