blob: 31c69b799e6f6a5f5fd69d8764db95078b0f314e (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
id = 2466
title = "I'm not sure. But I Think I could cause the err(include/qemu/queue.h)."
state = "closed"
created_at = "2024-07-29T15:40:02.918Z"
closed_at = "2024-07-29T16:48:53.960Z"
labels = []
url = "https://gitlab.com/qemu-project/qemu/-/issues/2466"
host-os = "ubuntu 22.04"
host-arch = "x86"
qemu-version = "n/a"
guest-os = "n/a"
guest-arch = "n/a"
description = """At file "include/qemu/queue.h", Maybe I Think QTAILQ_REMOVE could cause a Error.
```
#define QTAILQ_REMOVE(head, elm, field) do { \\
if (((elm)->field.tqe_next) != NULL) \\
(elm)->field.tqe_next->field.tqe_circ.tql_prev = \\
(elm)->field.tqe_circ.tql_prev; \\
else \\
(head)->tqh_circ.tql_prev = (elm)->field.tqe_circ.tql_prev; \\
(elm)->field.tqe_circ.tql_prev->tql_next = (elm)->field.tqe_next; \\
(elm)->field.tqe_circ.tql_prev = NULL; \\
(elm)->field.tqe_circ.tql_next = NULL; \\
(elm)->field.tqe_next = NULL; \\
} while (/*CONSTCOND*/0)
```
If the length of the que is one, line 7 cause a segmentation fault."""
reproduce = """1. Create a Que with QTAILQ_INIT
2. Add one element to que.
3. Remove the element with QTAILQ_REMOVE"""
additional = """queue.h file is located at "inclue/qemu/queue.h""""
|