gpt4 book ai didi

c - 我正在尝试找到队列的 C 代码中的安全漏洞

转载 作者:行者123 更新时间:2023-11-30 14:26:24 25 4
gpt4 key购买 nike

我知道 malloc 部分有些可疑,但我无法看出其中的不安全之处:

//que structure
typedef struct queue{
int *que; // the actual array of queue elements
int head; // the head index in que of the queue
int count; /// number of elements in queue
int size; // max number of elements in queue
} QUEUE;


void qManage(QUEUE **qptr, int flag, int size){
if(flag){
/* allocate a new queue */
*qptr = malloc(sizeof(QUEUE));
(*qptr)->head = (*qptr)->count = 0;
(*qptr)->que = malloc(size * sizeof(int));
(*qptr)->size = size;
}
else{
/* delete the current queue */
(void) free((*qptr)->que);
(void) free(*qptr);
}
}

最佳答案

我很确定问题是这样的:如果为“size”传递负值会发生什么?

另一个可能的问题是,您在分配后没有检查 *qptr 是否为 NULL,但是,这在实际代码中很少会出现问题,如果它会出现的话如果发生这种情况,您还有其他错误需要担心。

关于c - 我正在尝试找到队列的 C 代码中的安全漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9162299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com