!553 fix: 队列相关的API实现中,参数的校验不完全,导致程序异常

Merge pull request !553 from Lyb/master
This commit is contained in:
openharmony_ci 2022-01-18 09:30:03 +00:00 committed by Gitee
commit 4a8d3a52ec
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
1 changed files with 21 additions and 1 deletions

View File

@ -317,6 +317,11 @@ int mq_close(mqd_t personal)
struct mqpersonal *privateMqPersonal = NULL;
struct mqpersonal *tmp = NULL;
if ((personal == (mqd_t)NULL) || (personal == (mqd_t)-1)) {
errno = EBADF;
return -1;
}
(VOID)pthread_mutex_lock(&g_mqueueMutex);
privateMqPersonal = (struct mqpersonal *)personal;
if (privateMqPersonal->mq_status != MQ_USE_MAGIC) {
@ -430,11 +435,23 @@ int mq_getsetattr(mqd_t mqd, const struct mq_attr *new, struct mq_attr *old)
int mq_getattr(mqd_t mqd, struct mq_attr *attr)
{
if ((mqd == (mqd_t)NULL) || (mqd == (mqd_t)-1)) {
errno = EBADF;
return -1;
}
return mq_getsetattr(mqd, 0, attr);
}
int mq_setattr(mqd_t mqd, const struct mq_attr *new, struct mq_attr *old)
{
if ((mqd == (mqd_t)NULL) || (mqd == (mqd_t)-1)) {
errno = EBADF;
return -1;
}
if (new == NULL) {
errno = EINVAL;
return -1;
}
return mq_getsetattr(mqd, new, old);
}
@ -491,7 +508,10 @@ STATIC INT32 ConvertTimeout(long flags, const struct timespec *absTimeout, UINT6
STATIC INLINE BOOL MqParamCheck(mqd_t personal, const char *msg, size_t msgLen)
{
(void)personal;
if ((personal == (mqd_t)NULL) || (personal == (mqd_t)-1)) {
errno = EBADF;
return FALSE;
}
if ((msg == NULL) || (msgLen == 0)) {
errno = EINVAL;
return FALSE;