[Bug librt/23855] New: Use of uninitialized variable
wurongxin at cse dot ust.hk
sourceware-bugzilla@sourceware.org
Sun Nov 4 07:17:00 GMT 2018
https://sourceware.org/bugzilla/show_bug.cgi?id=23855
Bug ID: 23855
Summary: Use of uninitialized variable
Product: glibc
Version: 2.28
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: librt
Assignee: unassigned at sourceware dot org
Reporter: wurongxin at cse dot ust.hk
Target Milestone: ---
In the source file sysdeps/pthread/aio_misc.c, the variable policy was likely
to be assigned to aiocbp->aiocb.__policy without initialization.
297: struct requestlist *
298: __aio_enqueue_request (aiocb_union *aiocbp, int operation) {
...
301: int policy, prio;
...
322: pthread_getschedparam (pthread_self (), &policy, ¶m);
...
351: aiocbp->aiocb.__policy = policy;
...
}
In Line 322, the policy may be uninitialized in some paths. Please check the
function pthread_getschedparam in npt/pthread_getschedparam.c.
int
__pthread_getschedparam (pthread_t threadid, int *policy,
struct sched_param *param)
{
struct pthread *pd = (struct pthread *) threadid;
/* Make sure the descriptor is valid. */
if (INVALID_TD_P (pd))
/* Not a valid thread handle. */
return ESRCH;
int result = 0;
/* See CREATE THREAD NOTES in nptl/pthread_create.c. */
lll_lock (pd->lock, LLL_PRIVATE);
/* The library is responsible for maintaining the values at all
times. If the user uses an interface other than
pthread_setschedparam to modify the scheduler setting it is not
the library's problem. In case the descriptor's values have
not yet been retrieved do it now. */
if ((pd->flags & ATTR_FLAG_SCHED_SET) == 0)
{
if (__sched_getparam (pd->tid, &pd->schedparam) != 0)
result = 1;
else
pd->flags |= ATTR_FLAG_SCHED_SET;
}
if ((pd->flags & ATTR_FLAG_POLICY_SET) == 0)
{
pd->schedpolicy = __sched_getscheduler (pd->tid);
if (pd->schedpolicy == -1)
result = 1;
else
pd->flags |= ATTR_FLAG_POLICY_SET;
}
if (result == 0)
{
*policy = pd->schedpolicy;
memcpy (param, &pd->schedparam, sizeof (struct sched_param));
}
lll_unlock (pd->lock, LLL_PRIVATE);
return result;
}
strong_alias (__pthread_getschedparam, pthread_getschedparam)
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list