Skip to content

Commit 9c20a87

Browse files
authored
rust-toolchain: update to nightly 2025-04-01 (1.88) (#213)
1 parent bda17f7 commit 9c20a87

File tree

3 files changed

+71
-43
lines changed

3 files changed

+71
-43
lines changed

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
[toolchain]
2-
channel = "nightly-2025-02-28"
2+
channel = "nightly-2025-04-01"

src/os/windows/kernel.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ impl KernelInfo {
294294

295295
let mut current = list.Flink;
296296

297-
while current != list_address as *mut _ {
297+
while !std::ptr::eq(current, list_address as *mut LIST_ENTRY) {
298298
// NOTE: _KLDR_DATA_TABLE_ENTRY struct is stable for all versions of 10, *except* for the following fields:
299299
// union
300300
// {
@@ -517,7 +517,7 @@ impl KernelInfo {
517517

518518
list_entry = eprocess.active_process_links();
519519

520-
if list_entry.Flink == last_entry {
520+
if std::ptr::eq(list_entry.Flink, last_entry) {
521521
break;
522522
}
523523
}

src/os/windows/structs.rs

Lines changed: 68 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use super::{
2222
util::{read_unicode_string, read_unicode_string_dtb, read_virtual_dtb},
2323
};
2424

25+
#[allow(clippy::large_enum_variant)]
2526
pub enum WindowsKpcr {
2627
Windows10_0_10240_16384 {
2728
kpcr: windows_10_0_10240_16384_x64::_KPCR,
@@ -81,12 +82,14 @@ impl WindowsKpcr {
8182
let kpcr =
8283
read_virtual::<windows_10_0_10240_16384_x64::_KPCR>(processor, kpcr_address)?;
8384
ensure!(
84-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
85-
== kpcr_address as *mut _,
85+
std::ptr::eq(
86+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
87+
kpcr_address as *mut _
88+
),
8689
"Invalid KPCR: Self != KPCR address"
8790
);
8891
ensure!(
89-
kpcr.IdtBase == sim_idtr_base as *mut _,
92+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
9093
"Invalid KPCR: IdtBase != IDTR base"
9194
);
9295

@@ -96,12 +99,14 @@ impl WindowsKpcr {
9699
let kpcr =
97100
read_virtual::<windows_10_0_10586_0_x64::_KPCR>(processor, kpcr_address)?;
98101
ensure!(
99-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
100-
== kpcr_address as *mut _,
102+
std::ptr::eq(
103+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
104+
kpcr_address as *mut _
105+
),
101106
"Invalid KPCR: Self != KPCR address"
102107
);
103108
ensure!(
104-
kpcr.IdtBase == sim_idtr_base as *mut _,
109+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
105110
"Invalid KPCR: IdtBase != IDTR base"
106111
);
107112

@@ -111,12 +116,14 @@ impl WindowsKpcr {
111116
let kpcr =
112117
read_virtual::<windows_10_0_14393_0_x64::_KPCR>(processor, kpcr_address)?;
113118
ensure!(
114-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
115-
== kpcr_address as *mut _,
119+
std::ptr::eq(
120+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
121+
kpcr_address as *mut _
122+
),
116123
"Invalid KPCR: Self != KPCR address"
117124
);
118125
ensure!(
119-
kpcr.IdtBase == sim_idtr_base as *mut _,
126+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
120127
"Invalid KPCR: IdtBase != IDTR base"
121128
);
122129

@@ -126,12 +133,14 @@ impl WindowsKpcr {
126133
let kpcr =
127134
read_virtual::<windows_10_0_15063_0_x64::_KPCR>(processor, kpcr_address)?;
128135
ensure!(
129-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
130-
== kpcr_address as *mut _,
136+
std::ptr::eq(
137+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
138+
kpcr_address as *mut _
139+
),
131140
"Invalid KPCR: Self != KPCR address"
132141
);
133142
ensure!(
134-
kpcr.IdtBase == sim_idtr_base as *mut _,
143+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
135144
"Invalid KPCR: IdtBase != IDTR base"
136145
);
137146

@@ -141,12 +150,14 @@ impl WindowsKpcr {
141150
let kpcr =
142151
read_virtual::<windows_10_0_16299_15_x64::_KPCR>(processor, kpcr_address)?;
143152
ensure!(
144-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
145-
== kpcr_address as *mut _,
153+
std::ptr::eq(
154+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
155+
kpcr_address as *mut _
156+
),
146157
"Invalid KPCR: Self != KPCR address"
147158
);
148159
ensure!(
149-
kpcr.IdtBase == sim_idtr_base as *mut _,
160+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
150161
"Invalid KPCR: IdtBase != IDTR base"
151162
);
152163

@@ -156,12 +167,14 @@ impl WindowsKpcr {
156167
let kpcr =
157168
read_virtual::<windows_10_0_17134_1_x64::_KPCR>(processor, kpcr_address)?;
158169
ensure!(
159-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
160-
== kpcr_address as *mut _,
170+
std::ptr::eq(
171+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
172+
kpcr_address as *mut _
173+
),
161174
"Invalid KPCR: Self != KPCR address"
162175
);
163176
ensure!(
164-
kpcr.IdtBase == sim_idtr_base as *mut _,
177+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
165178
"Invalid KPCR: IdtBase != IDTR base"
166179
);
167180

@@ -171,12 +184,14 @@ impl WindowsKpcr {
171184
let kpcr =
172185
read_virtual::<windows_10_0_17763_107_x64::_KPCR>(processor, kpcr_address)?;
173186
ensure!(
174-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
175-
== kpcr_address as *mut _,
187+
std::ptr::eq(
188+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
189+
kpcr_address as *mut _
190+
),
176191
"Invalid KPCR: Self != KPCR address"
177192
);
178193
ensure!(
179-
kpcr.IdtBase == sim_idtr_base as *mut _,
194+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
180195
"Invalid KPCR: IdtBase != IDTR base"
181196
);
182197

@@ -186,12 +201,14 @@ impl WindowsKpcr {
186201
let kpcr =
187202
read_virtual::<windows_10_0_18362_418_x64::_KPCR>(processor, kpcr_address)?;
188203
ensure!(
189-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
190-
== kpcr_address as *mut _,
204+
std::ptr::eq(
205+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
206+
kpcr_address as *mut _
207+
),
191208
"Invalid KPCR: Self != KPCR address"
192209
);
193210
ensure!(
194-
kpcr.IdtBase == sim_idtr_base as *mut _,
211+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
195212
"Invalid KPCR: IdtBase != IDTR base"
196213
);
197214

@@ -201,12 +218,14 @@ impl WindowsKpcr {
201218
let kpcr =
202219
read_virtual::<windows_10_0_19041_1288_x64::_KPCR>(processor, kpcr_address)?;
203220
ensure!(
204-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
205-
== kpcr_address as *mut _,
221+
std::ptr::eq(
222+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
223+
kpcr_address as *mut _
224+
),
206225
"Invalid KPCR: Self != KPCR address"
207226
);
208227
ensure!(
209-
kpcr.IdtBase == sim_idtr_base as *mut _,
228+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
210229
"Invalid KPCR: IdtBase != IDTR base"
211230
);
212231

@@ -216,12 +235,14 @@ impl WindowsKpcr {
216235
let kpcr =
217236
read_virtual::<windows_10_0_19045_2965_x64::_KPCR>(processor, kpcr_address)?;
218237
ensure!(
219-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
220-
== kpcr_address as *mut _,
238+
std::ptr::eq(
239+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
240+
kpcr_address as *mut _
241+
),
221242
"Invalid KPCR: Self != KPCR address"
222243
);
223244
ensure!(
224-
kpcr.IdtBase == sim_idtr_base as *mut _,
245+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
225246
"Invalid KPCR: IdtBase != IDTR base"
226247
);
227248

@@ -231,12 +252,14 @@ impl WindowsKpcr {
231252
let kpcr =
232253
read_virtual::<windows_10_0_22000_194_x64::_KPCR>(processor, kpcr_address)?;
233254
ensure!(
234-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
235-
== kpcr_address as *mut _,
255+
std::ptr::eq(
256+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
257+
kpcr_address as *mut _
258+
),
236259
"Invalid KPCR: Self != KPCR address"
237260
);
238261
ensure!(
239-
kpcr.IdtBase == sim_idtr_base as *mut _,
262+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
240263
"Invalid KPCR: IdtBase != IDTR base"
241264
);
242265

@@ -246,12 +269,14 @@ impl WindowsKpcr {
246269
let kpcr =
247270
read_virtual::<windows_10_0_22621_382_x64::_KPCR>(processor, kpcr_address)?;
248271
ensure!(
249-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
250-
== kpcr_address as *mut _,
272+
std::ptr::eq(
273+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
274+
kpcr_address as *mut _
275+
),
251276
"Invalid KPCR: Self != KPCR address"
252277
);
253278
ensure!(
254-
kpcr.IdtBase == sim_idtr_base as *mut _,
279+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
255280
"Invalid KPCR: IdtBase != IDTR base"
256281
);
257282

@@ -261,12 +286,14 @@ impl WindowsKpcr {
261286
let kpcr =
262287
read_virtual::<windows_10_0_22631_2428_x64::_KPCR>(processor, kpcr_address)?;
263288
ensure!(
264-
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_
265-
== kpcr_address as *mut _,
289+
std::ptr::eq(
290+
unsafe { kpcr.__bindgen_anon_1.__bindgen_anon_1 }.Self_,
291+
kpcr_address as *mut _
292+
),
266293
"Invalid KPCR: Self != KPCR address"
267294
);
268295
ensure!(
269-
kpcr.IdtBase == sim_idtr_base as *mut _,
296+
std::ptr::eq(kpcr.IdtBase, sim_idtr_base as *mut _),
270297
"Invalid KPCR: IdtBase != IDTR base"
271298
);
272299

@@ -321,6 +348,7 @@ impl WindowsKpcr {
321348
}
322349
}
323350

351+
#[allow(clippy::large_enum_variant)]
324352
pub enum WindowsKprcb {
325353
Windows10_0_10240_16384 {
326354
kprcb: windows_10_0_10240_16384_x64::_KPRCB,
@@ -2878,7 +2906,7 @@ impl WindowsEProcess {
28782906

28792907
list_entry = ldr_data_entry.in_load_order_links();
28802908

2881-
if list_entry.Flink == last_entry {
2909+
if std::ptr::eq(list_entry.Flink, last_entry) {
28822910
break;
28832911
}
28842912
}

0 commit comments

Comments
 (0)