mirror of
https://github.com/systemd/systemd
synced 2025-09-23 13:54:45 +02:00
Compare commits
40 Commits
4dddcce874
...
85a725a942
Author | SHA1 | Date | |
---|---|---|---|
![]() |
85a725a942 | ||
![]() |
6413ccc625 | ||
![]() |
5510a98fda | ||
![]() |
df6ccb0496 | ||
![]() |
d7c7af28fb | ||
![]() |
72bf86663c | ||
![]() |
413a1c51c4 | ||
![]() |
af373bbcb9 | ||
![]() |
75924efd5a | ||
![]() |
505deaff01 | ||
![]() |
eb514a4bbf | ||
![]() |
1e765ed0eb | ||
![]() |
9ec1b3e075 | ||
![]() |
bed2723caa | ||
![]() |
aa7574417b | ||
![]() |
ab0ffca130 | ||
![]() |
28021f6e88 | ||
![]() |
eb654a769d | ||
![]() |
08d8224c0a | ||
![]() |
113ef23264 | ||
![]() |
09f655ad4a | ||
![]() |
a179823379 | ||
![]() |
781d9d0789 | ||
![]() |
6833cdfa04 | ||
![]() |
128096c422 | ||
![]() |
ff50e47aa1 | ||
![]() |
803e3a8557 | ||
![]() |
01caeddbe3 | ||
![]() |
106bdd888b | ||
![]() |
f9f8a35264 | ||
![]() |
93d037dbd0 | ||
![]() |
66b2d758c5 | ||
![]() |
f2d3472131 | ||
![]() |
fa7e3a96e4 | ||
![]() |
ef8517f024 | ||
![]() |
d486ae5adf | ||
![]() |
e1f3d790f3 | ||
![]() |
887d0f8e93 | ||
![]() |
afbf09350b | ||
![]() |
eea5745f9e |
1
.mailmap
1
.mailmap
@ -24,6 +24,7 @@ Chen Qi <Qi.Chen@windriver.com> <40684930+ChenQi1989@users.noreply.github.com>
|
||||
Christophe Varoqui <christophe.varoqui@free.fr>
|
||||
Colin Guthrie <ColinGuthrie@web>
|
||||
Cristian Rodríguez <cristian@rodriguez.im> <crodriguez@owncloud.com>
|
||||
Daan De Meyer <daan.j.demeyer@gmail.com>
|
||||
Daniel Elstner <daniel.kitta@gmail.com> <danielk@openismus.com>
|
||||
Daniel Gorbea <danielgorbea@hotmail.com>
|
||||
Daniel J Walsh <dwalsh@redhat.com>
|
||||
|
37
NEWS
37
NEWS
@ -1,6 +1,6 @@
|
||||
systemd System and Service Manager
|
||||
|
||||
CHANGES WITH 258 in spe:
|
||||
CHANGES WITH 258:
|
||||
|
||||
Incompatible changes:
|
||||
|
||||
@ -1530,15 +1530,15 @@ CHANGES WITH 258 in spe:
|
||||
Américo Monteiro, Andika Triwidada, AndreFerreiraMsc,
|
||||
Andreas Henriksson, Andreas Schneider, Andreas Stührk, Andres Beltran,
|
||||
Andrew Sayers, Andrii Chubatiuk, André Monteiro, Andy Shevchenko,
|
||||
Ani Sinha, Anthony Avina, Anthony Messina, Anton Ryzhov,
|
||||
Ani Sinha, Anthony Avina, Anthony Messina, Anton Ryzhov, Anton Tiurin,
|
||||
Antonio Alvarez Feijoo, Arian van Putten, Arkadiusz Bokowy, Arnaudv6,
|
||||
AsciiWolf, Avram Dorfman, Bastien Nocera, Beniamino Galvani,
|
||||
Brett Holman, Busayo Dada, ButterflyOfFire, Carlo Teubner, Chris Grant,
|
||||
Chris Hofstaedtler, Chris Mayo, Christian Glombek, Christian Hesse,
|
||||
Christopher Head, Colin Foster, Cosima Neidahl, Craig McLure,
|
||||
Daan De Meyer, DaanDeMeyer, Dai MIKURUBE, Dan McGregor, Dan Streetman,
|
||||
Daan De Meyer, Dai MIKURUBE, Dan McGregor, Dan Streetman,
|
||||
Daniel Foster, Daniel Rusek, Daniil, David C. Manuelda, David Härdeman,
|
||||
David Rheinsberg, David Tardon, Debarshi Ray, Deli Zhang,
|
||||
David Rheinsberg, David Tardon, DeKoile, Debarshi Ray, Deli Zhang,
|
||||
Devilish Spirits, Dimitri John Ledkov, Duncan Overbruck, Dusty Mabe,
|
||||
Eaterminer, Eisuke Kawashima, Emilio Sepulveda, Emir SARI,
|
||||
Emmanuel Ferdman, Enrico Tagliavini, Erik Larsson, Erin Shepherd,
|
||||
@ -1559,16 +1559,17 @@ CHANGES WITH 258 in spe:
|
||||
Lorenzo Arena, Louis Sautier, LuK1337, Luca Boccassi,
|
||||
Lucas Adriano Salles, Luke Yeager, Lukáš Nykrýn, Luna Jernberg,
|
||||
Léane GRASSER, Marco Trevisan (Treviño), Marcos Alano,
|
||||
Mario Limonciello, Markus Kurz, Martin Hundebøll, Martin Srebotnjak,
|
||||
Martin Wilck, Mate Kukri, Matteo Croce, Matthew Schwartz,
|
||||
Matthias Gerstner, Matthias Lisin, Matthieu Baerts (NGI0),
|
||||
Matthieu LAURENT, MaxHearnden, Michael Catanzaro, Michael Ferrari,
|
||||
Michael Limiero, Michael Olbrich, Michal Koutný, Michal Sekletár,
|
||||
Michał Moczulski, Mike Yuan, Miroslav Lichvar, Morten Hauke Solvang,
|
||||
Mario Limonciello, Markus Kurz, Martin Homuth-Rosemann,
|
||||
Martin Hundebøll, Martin Srebotnjak, Martin Wilck, Mate Kukri,
|
||||
Matteo Croce, Matthew Schwartz, Matthias Gerstner, Matthias Lisin,
|
||||
Matthieu Baerts (NGI0), Matthieu LAURENT, MaxHearnden,
|
||||
Michael Catanzaro, Michael Ferrari, Michael Limiero, Michael Olbrich,
|
||||
Michal Koutný, Michal Sekletár, Michał Moczulski, Mike Yuan,
|
||||
Miroslav Lichvar, Morten Hauke Solvang,
|
||||
Muhammad Nuzaihan Bin Kamal Luddin, Myrrh Periwinkle, Nathan,
|
||||
NetSysFire, Nick Labich, Nick Owens, Nick Rosbrook, Nils K,
|
||||
Noel Georgi, Nuno Sá, Oliver Schramm, Paul Fertser, Pavithra Barithaya,
|
||||
Philip Freeman, Philip Withnall, Piotr Drąg, Pontus Lundkvist,
|
||||
Philip Freeman, Philip Withnall, Piotr Drąg, Pontus Lundkvist, Raura,
|
||||
Ricky Tigg, RocketDev, Ronan Pigott, Rostislav Lastochkin,
|
||||
Rudi Heitbaum, Ryan Blue, Ryan Thompson, Ryan Wilson, Salim B,
|
||||
Salvatore Cocuzza, Sam James, Sam Leonard, Samuel Dionne-Riel,
|
||||
@ -1582,15 +1583,15 @@ CHANGES WITH 258 in spe:
|
||||
Vishal Chillara Srinivas, Vishwanath Chandapur, Vitaly Kuznetsov,
|
||||
Volodymyr Shkriabets, Vyacheslav Yurkov, Werner Sembach, Y T,
|
||||
Yaping Li, Yu Watanabe, ZIHCO, Zbigniew Jędrzejewski-Szmek,
|
||||
andrejpodzimek, anonymix007, cvlc12, damnkiwi6120, davjav, fishears,
|
||||
hanjinpeng, haxibami, herbrechtsmeier, honjow, hsu zangmen, igo95862,
|
||||
jane400, jinyaoguo, joo es, kanitha chim, keentux, kmeaw, luc-salles,
|
||||
madroach, maia x., msizanoen, naly zzwd, nkraetzschmar, nl6720,
|
||||
novenary, peelz, persmule, richfifeg, ssoss, tim tom, tuxmainy,
|
||||
andrejpodzimek, anonymix007, anthisfan, cvlc12, damnkiwi6120, davjav,
|
||||
fishears, hanjinpeng, haxibami, herbrechtsmeier, honjow, hsu zangmen,
|
||||
igo95862, jane400, jinyaoguo, joo es, kanitha chim, keentux, kmeaw,
|
||||
luc-salles, madroach, maia x., msizanoen, naly zzwd, nkraetzschmar,
|
||||
nl6720, novenary, peelz, persmule, richfifeg, ssoss, tim tom, tuxmainy,
|
||||
tytan652, val4oss, ver4a, victor-ok, vlefebvre, wrvsrx, wtmpx,
|
||||
xinpeng wang, z z, Дамјан Георгиевски, 铝箔, 김인수
|
||||
xinpeng wang, z z, Дамјан Георгиевски, наб, 铝箔, 김인수
|
||||
|
||||
— Edinburgh, 2025/09/05
|
||||
— Edinburgh, 2025/09/17
|
||||
|
||||
CHANGES WITH 257:
|
||||
|
||||
|
1
TODO
1
TODO
@ -245,7 +245,6 @@ Features:
|
||||
- io.systemd.Hostname
|
||||
- io.systemd.ManagedOOM
|
||||
- io.systemd.Network
|
||||
- io.systemd.PCRExtend
|
||||
- io.systemd.PCRLock
|
||||
- io.systemd.Resolve.Monitor
|
||||
- io.systemd.Resolve
|
||||
|
@ -301,6 +301,12 @@ care should be taken to avoid naming conflicts. `systemd` (and in particular
|
||||
may be used in combination with `/run/host/userdb/` above: one defines the
|
||||
user record, the other contains the user's home directory.
|
||||
|
||||
12. The `/run/host/root/` directory may be used to bind mount the host root
|
||||
filesystem. Binding the host's root filesystem into the container is a
|
||||
major security hole: any container manager that maintains a security
|
||||
boundary should not use this; however, if having the root filesystem in
|
||||
the container is desired, this is a good place to mount it to.
|
||||
|
||||
## What You Shouldn't Do
|
||||
|
||||
1. Do not drop `CAP_MKNOD` from the container. `PrivateDevices=` is a commonly
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -396,6 +396,9 @@ acpi:UBLX*:
|
||||
acpi:UBOO*:
|
||||
ID_VENDOR_FROM_DATABASE=Das U-Boot
|
||||
|
||||
acpi:ULRV*:
|
||||
ID_VENDOR_FROM_DATABASE=UltraRISC Technology (Shanghai) Co., Ltd
|
||||
|
||||
acpi:VAIO*:
|
||||
ID_VENDOR_FROM_DATABASE=VAIO Corporation
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
--- 20-acpi-vendor.hwdb.base 2025-09-05 09:10:01.771007528 +0200
|
||||
+++ 20-acpi-vendor.hwdb 2025-09-05 09:10:01.786007236 +0200
|
||||
--- 20-acpi-vendor.hwdb.base 2025-09-17 09:39:11.942879943 +0100
|
||||
+++ 20-acpi-vendor.hwdb 2025-09-17 09:39:11.950880802 +0100
|
||||
@@ -3,6 +3,8 @@
|
||||
# Data imported from:
|
||||
# https://uefi.org/uefi-pnp-export
|
||||
@ -19,7 +19,7 @@
|
||||
acpi:AMDI*:
|
||||
ID_VENDOR_FROM_DATABASE=AMD
|
||||
|
||||
@@ -424,6 +423,9 @@
|
||||
@@ -427,6 +426,9 @@
|
||||
acpi:AAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Avolites Ltd
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
acpi:AAE*:
|
||||
ID_VENDOR_FROM_DATABASE=Anatek Electronics Inc.
|
||||
|
||||
@@ -451,6 +453,9 @@
|
||||
@@ -454,6 +456,9 @@
|
||||
acpi:ABO*:
|
||||
ID_VENDOR_FROM_DATABASE=D-Link Systems Inc
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
acpi:ABS*:
|
||||
ID_VENDOR_FROM_DATABASE=Abaco Systems, Inc.
|
||||
|
||||
@@ -496,7 +501,7 @@
|
||||
@@ -499,7 +504,7 @@
|
||||
acpi:ACO*:
|
||||
ID_VENDOR_FROM_DATABASE=Allion Computer Inc.
|
||||
|
||||
@ -48,7 +48,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Aspen Tech Inc
|
||||
|
||||
acpi:ACR*:
|
||||
@@ -775,6 +780,9 @@
|
||||
@@ -778,6 +783,9 @@
|
||||
acpi:AMT*:
|
||||
ID_VENDOR_FROM_DATABASE=AMT International Industry
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
acpi:AMX*:
|
||||
ID_VENDOR_FROM_DATABASE=AMX LLC
|
||||
|
||||
@@ -823,6 +831,9 @@
|
||||
@@ -826,6 +834,9 @@
|
||||
acpi:AOA*:
|
||||
ID_VENDOR_FROM_DATABASE=AOpen Inc.
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
acpi:AOE*:
|
||||
ID_VENDOR_FROM_DATABASE=Advanced Optics Electronics, Inc.
|
||||
|
||||
@@ -832,6 +843,9 @@
|
||||
@@ -835,6 +846,9 @@
|
||||
acpi:AOT*:
|
||||
ID_VENDOR_FROM_DATABASE=Alcatel
|
||||
|
||||
@ -78,7 +78,7 @@
|
||||
acpi:APC*:
|
||||
ID_VENDOR_FROM_DATABASE=American Power Conversion
|
||||
|
||||
@@ -1013,7 +1027,7 @@
|
||||
@@ -1016,7 +1030,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=ALPS ALPINE CO., LTD.
|
||||
|
||||
acpi:AUO*:
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
acpi:AUR*:
|
||||
ID_VENDOR_FROM_DATABASE=Aureal Semiconductor
|
||||
@@ -1093,6 +1107,9 @@
|
||||
@@ -1096,6 +1110,9 @@
|
||||
acpi:AXE*:
|
||||
ID_VENDOR_FROM_DATABASE=Axell Corporation
|
||||
|
||||
@ -97,7 +97,7 @@
|
||||
acpi:AXI*:
|
||||
ID_VENDOR_FROM_DATABASE=American Magnetics
|
||||
|
||||
@@ -1252,6 +1269,9 @@
|
||||
@@ -1255,6 +1272,9 @@
|
||||
acpi:BML*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMED Lab
|
||||
|
||||
@ -107,7 +107,7 @@
|
||||
acpi:BMS*:
|
||||
ID_VENDOR_FROM_DATABASE=BIOMEDISYS
|
||||
|
||||
@@ -1264,6 +1284,9 @@
|
||||
@@ -1267,6 +1287,9 @@
|
||||
acpi:BNO*:
|
||||
ID_VENDOR_FROM_DATABASE=Bang & Olufsen
|
||||
|
||||
@ -117,7 +117,7 @@
|
||||
acpi:BNS*:
|
||||
ID_VENDOR_FROM_DATABASE=Boulder Nonlinear Systems
|
||||
|
||||
@@ -1510,6 +1533,9 @@
|
||||
@@ -1513,6 +1536,9 @@
|
||||
acpi:CHA*:
|
||||
ID_VENDOR_FROM_DATABASE=Chase Research PLC
|
||||
|
||||
@ -127,7 +127,7 @@
|
||||
acpi:CHD*:
|
||||
ID_VENDOR_FROM_DATABASE=ChangHong Electric Co.,Ltd
|
||||
|
||||
@@ -1675,6 +1701,9 @@
|
||||
@@ -1678,6 +1704,9 @@
|
||||
acpi:COD*:
|
||||
ID_VENDOR_FROM_DATABASE=CODAN Pty. Ltd.
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
acpi:COI*:
|
||||
ID_VENDOR_FROM_DATABASE=Codec Inc.
|
||||
|
||||
@@ -2093,7 +2122,7 @@
|
||||
@@ -2096,7 +2125,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Dragon Information Technology
|
||||
|
||||
acpi:DJE*:
|
||||
@ -146,7 +146,7 @@
|
||||
|
||||
acpi:DJP*:
|
||||
ID_VENDOR_FROM_DATABASE=Maygay Machines, Ltd
|
||||
@@ -2446,6 +2475,9 @@
|
||||
@@ -2449,6 +2478,9 @@
|
||||
acpi:EIN*:
|
||||
ID_VENDOR_FROM_DATABASE=Elegant Invention
|
||||
|
||||
@ -156,7 +156,7 @@
|
||||
acpi:EKA*:
|
||||
ID_VENDOR_FROM_DATABASE=MagTek Inc.
|
||||
|
||||
@@ -2716,6 +2748,9 @@
|
||||
@@ -2719,6 +2751,9 @@
|
||||
acpi:FCG*:
|
||||
ID_VENDOR_FROM_DATABASE=First International Computer Ltd
|
||||
|
||||
@ -166,7 +166,7 @@
|
||||
acpi:FCS*:
|
||||
ID_VENDOR_FROM_DATABASE=Focus Enhancements, Inc.
|
||||
|
||||
@@ -3092,7 +3127,7 @@
|
||||
@@ -3095,7 +3130,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=General Standards Corporation
|
||||
|
||||
acpi:GSM*:
|
||||
@ -175,7 +175,7 @@
|
||||
|
||||
acpi:GSN*:
|
||||
ID_VENDOR_FROM_DATABASE=Grandstream Networks, Inc.
|
||||
@@ -3202,6 +3237,9 @@
|
||||
@@ -3205,6 +3240,9 @@
|
||||
acpi:HEC*:
|
||||
ID_VENDOR_FROM_DATABASE=Hisense Electric Co., Ltd.
|
||||
|
||||
@ -185,7 +185,7 @@
|
||||
acpi:HEL*:
|
||||
ID_VENDOR_FROM_DATABASE=Hitachi Micro Systems Europe Ltd
|
||||
|
||||
@@ -3337,6 +3375,9 @@
|
||||
@@ -3340,6 +3378,9 @@
|
||||
acpi:HSD*:
|
||||
ID_VENDOR_FROM_DATABASE=HannStar Display Corp
|
||||
|
||||
@ -195,7 +195,7 @@
|
||||
acpi:HSM*:
|
||||
ID_VENDOR_FROM_DATABASE=AT&T Microelectronics
|
||||
|
||||
@@ -3463,6 +3504,9 @@
|
||||
@@ -3466,6 +3507,9 @@
|
||||
acpi:ICI*:
|
||||
ID_VENDOR_FROM_DATABASE=Infotek Communication Inc
|
||||
|
||||
@ -205,7 +205,7 @@
|
||||
acpi:ICM*:
|
||||
ID_VENDOR_FROM_DATABASE=Intracom SA
|
||||
|
||||
@@ -3559,6 +3603,9 @@
|
||||
@@ -3562,6 +3606,9 @@
|
||||
acpi:IKE*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikegami Tsushinki Co. Ltd.
|
||||
|
||||
@ -215,7 +215,7 @@
|
||||
acpi:IKS*:
|
||||
ID_VENDOR_FROM_DATABASE=Ikos Systems Inc
|
||||
|
||||
@@ -3607,6 +3654,9 @@
|
||||
@@ -3610,6 +3657,9 @@
|
||||
acpi:IMX*:
|
||||
ID_VENDOR_FROM_DATABASE=arpara Technology Co., Ltd.
|
||||
|
||||
@ -225,7 +225,7 @@
|
||||
acpi:INA*:
|
||||
ID_VENDOR_FROM_DATABASE=Inventec Corporation
|
||||
|
||||
@@ -4135,6 +4185,9 @@
|
||||
@@ -4138,6 +4188,9 @@
|
||||
acpi:LAN*:
|
||||
ID_VENDOR_FROM_DATABASE=Sodeman Lancom Inc
|
||||
|
||||
@ -235,7 +235,7 @@
|
||||
acpi:LAS*:
|
||||
ID_VENDOR_FROM_DATABASE=LASAT Comm. A/S
|
||||
|
||||
@@ -4186,6 +4239,9 @@
|
||||
@@ -4189,6 +4242,9 @@
|
||||
acpi:LED*:
|
||||
ID_VENDOR_FROM_DATABASE=Long Engineering Design Inc
|
||||
|
||||
@ -245,7 +245,7 @@
|
||||
acpi:LEG*:
|
||||
ID_VENDOR_FROM_DATABASE=Legerity, Inc
|
||||
|
||||
@@ -4204,6 +4260,9 @@
|
||||
@@ -4207,6 +4263,9 @@
|
||||
acpi:LGD*:
|
||||
ID_VENDOR_FROM_DATABASE=LG Display
|
||||
|
||||
@ -255,7 +255,7 @@
|
||||
acpi:LGI*:
|
||||
ID_VENDOR_FROM_DATABASE=Logitech Inc
|
||||
|
||||
@@ -4270,6 +4329,9 @@
|
||||
@@ -4273,6 +4332,9 @@
|
||||
acpi:LND*:
|
||||
ID_VENDOR_FROM_DATABASE=Land Computer Company Ltd
|
||||
|
||||
@ -265,7 +265,7 @@
|
||||
acpi:LNK*:
|
||||
ID_VENDOR_FROM_DATABASE=Link Tech Inc
|
||||
|
||||
@@ -4304,7 +4366,7 @@
|
||||
@@ -4307,7 +4369,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=Design Technology
|
||||
|
||||
acpi:LPL*:
|
||||
@ -274,7 +274,7 @@
|
||||
|
||||
acpi:LSC*:
|
||||
ID_VENDOR_FROM_DATABASE=LifeSize Communications
|
||||
@@ -4480,6 +4542,9 @@
|
||||
@@ -4483,6 +4545,9 @@
|
||||
acpi:MCX*:
|
||||
ID_VENDOR_FROM_DATABASE=Millson Custom Solutions Inc.
|
||||
|
||||
@ -284,7 +284,7 @@
|
||||
acpi:MDA*:
|
||||
ID_VENDOR_FROM_DATABASE=Media4 Inc
|
||||
|
||||
@@ -4726,6 +4791,9 @@
|
||||
@@ -4729,6 +4794,9 @@
|
||||
acpi:MOM*:
|
||||
ID_VENDOR_FROM_DATABASE=Momentum Data Systems
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
acpi:MOS*:
|
||||
ID_VENDOR_FROM_DATABASE=Moses Corporation
|
||||
|
||||
@@ -4966,6 +5034,9 @@
|
||||
@@ -4969,6 +5037,9 @@
|
||||
acpi:NAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Network Alchemy
|
||||
|
||||
@ -304,7 +304,7 @@
|
||||
acpi:NAT*:
|
||||
ID_VENDOR_FROM_DATABASE=NaturalPoint Inc.
|
||||
|
||||
@@ -5506,6 +5577,9 @@
|
||||
@@ -5509,6 +5580,9 @@
|
||||
acpi:PCX*:
|
||||
ID_VENDOR_FROM_DATABASE=PC Xperten
|
||||
|
||||
@ -314,7 +314,7 @@
|
||||
acpi:PDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Psion Dacom Plc.
|
||||
|
||||
@@ -5569,9 +5643,6 @@
|
||||
@@ -5572,9 +5646,6 @@
|
||||
acpi:PHE*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Medical Systems Boeblingen GmbH
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
acpi:PHL*:
|
||||
ID_VENDOR_FROM_DATABASE=Philips Consumer Electronics Company
|
||||
|
||||
@@ -5662,9 +5733,6 @@
|
||||
@@ -5665,9 +5736,6 @@
|
||||
acpi:PNL*:
|
||||
ID_VENDOR_FROM_DATABASE=Panelview, Inc.
|
||||
|
||||
@ -334,7 +334,7 @@
|
||||
acpi:PNR*:
|
||||
ID_VENDOR_FROM_DATABASE=Planar Systems, Inc.
|
||||
|
||||
@@ -6142,9 +6210,6 @@
|
||||
@@ -6145,9 +6213,6 @@
|
||||
acpi:RTI*:
|
||||
ID_VENDOR_FROM_DATABASE=Rancho Tech Inc
|
||||
|
||||
@ -344,7 +344,7 @@
|
||||
acpi:RTL*:
|
||||
ID_VENDOR_FROM_DATABASE=Realtek Semiconductor Company Ltd
|
||||
|
||||
@@ -6319,9 +6384,6 @@
|
||||
@@ -6322,9 +6387,6 @@
|
||||
acpi:SEE*:
|
||||
ID_VENDOR_FROM_DATABASE=SeeColor Corporation
|
||||
|
||||
@ -354,7 +354,7 @@
|
||||
acpi:SEI*:
|
||||
ID_VENDOR_FROM_DATABASE=Seitz & Associates Inc
|
||||
|
||||
@@ -6805,6 +6867,9 @@
|
||||
@@ -6808,6 +6870,9 @@
|
||||
acpi:SVD*:
|
||||
ID_VENDOR_FROM_DATABASE=SVD Computer
|
||||
|
||||
@ -364,7 +364,7 @@
|
||||
acpi:SVI*:
|
||||
ID_VENDOR_FROM_DATABASE=Sun Microsystems
|
||||
|
||||
@@ -6889,6 +6954,9 @@
|
||||
@@ -6892,6 +6957,9 @@
|
||||
acpi:SZM*:
|
||||
ID_VENDOR_FROM_DATABASE=Shenzhen MTC Co., Ltd
|
||||
|
||||
@ -374,7 +374,7 @@
|
||||
acpi:TAA*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandberg
|
||||
|
||||
@@ -6979,6 +7047,9 @@
|
||||
@@ -6982,6 +7050,9 @@
|
||||
acpi:TDG*:
|
||||
ID_VENDOR_FROM_DATABASE=Six15 Technologies
|
||||
|
||||
@ -384,7 +384,7 @@
|
||||
acpi:TDM*:
|
||||
ID_VENDOR_FROM_DATABASE=Tandem Computer Europe Inc
|
||||
|
||||
@@ -7021,6 +7092,9 @@
|
||||
@@ -7024,6 +7095,9 @@
|
||||
acpi:TEV*:
|
||||
ID_VENDOR_FROM_DATABASE=Televés, S.A.
|
||||
|
||||
@ -394,7 +394,7 @@
|
||||
acpi:TEZ*:
|
||||
ID_VENDOR_FROM_DATABASE=Tech Source Inc.
|
||||
|
||||
@@ -7150,9 +7224,6 @@
|
||||
@@ -7153,9 +7227,6 @@
|
||||
acpi:TNC*:
|
||||
ID_VENDOR_FROM_DATABASE=TNC Industrial Company Ltd
|
||||
|
||||
@ -404,7 +404,7 @@
|
||||
acpi:TNM*:
|
||||
ID_VENDOR_FROM_DATABASE=TECNIMAGEN SA
|
||||
|
||||
@@ -7465,14 +7536,14 @@
|
||||
@@ -7468,14 +7539,14 @@
|
||||
acpi:UNC*:
|
||||
ID_VENDOR_FROM_DATABASE=Unisys Corporation
|
||||
|
||||
@ -425,7 +425,7 @@
|
||||
|
||||
acpi:UNI*:
|
||||
ID_VENDOR_FROM_DATABASE=Uniform Industry Corp.
|
||||
@@ -7507,6 +7578,9 @@
|
||||
@@ -7510,6 +7581,9 @@
|
||||
acpi:USA*:
|
||||
ID_VENDOR_FROM_DATABASE=Utimaco Safeware AG
|
||||
|
||||
@ -435,7 +435,7 @@
|
||||
acpi:USD*:
|
||||
ID_VENDOR_FROM_DATABASE=U.S. Digital Corporation
|
||||
|
||||
@@ -7768,9 +7842,6 @@
|
||||
@@ -7771,9 +7845,6 @@
|
||||
acpi:WAL*:
|
||||
ID_VENDOR_FROM_DATABASE=Wave Access
|
||||
|
||||
@ -445,7 +445,7 @@
|
||||
acpi:WAV*:
|
||||
ID_VENDOR_FROM_DATABASE=Wavephore
|
||||
|
||||
@@ -7898,7 +7969,7 @@
|
||||
@@ -7901,7 +7972,7 @@
|
||||
ID_VENDOR_FROM_DATABASE=WyreStorm Technologies LLC
|
||||
|
||||
acpi:WYS*:
|
||||
@ -454,7 +454,7 @@
|
||||
|
||||
acpi:WYT*:
|
||||
ID_VENDOR_FROM_DATABASE=Wooyoung Image & Information Co.,Ltd.
|
||||
@@ -7912,9 +7983,6 @@
|
||||
@@ -7915,9 +7986,6 @@
|
||||
acpi:XDM*:
|
||||
ID_VENDOR_FROM_DATABASE=XDM Ltd.
|
||||
|
||||
@ -464,7 +464,7 @@
|
||||
acpi:XES*:
|
||||
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.
|
||||
|
||||
@@ -7948,9 +8016,6 @@
|
||||
@@ -7951,9 +8019,6 @@
|
||||
acpi:XNT*:
|
||||
ID_VENDOR_FROM_DATABASE=XN Technologies, Inc.
|
||||
|
||||
@ -474,7 +474,7 @@
|
||||
acpi:XQU*:
|
||||
ID_VENDOR_FROM_DATABASE=SHANGHAI SVA-DAV ELECTRONICS CO., LTD
|
||||
|
||||
@@ -8017,6 +8082,9 @@
|
||||
@@ -8020,6 +8085,9 @@
|
||||
acpi:ZBX*:
|
||||
ID_VENDOR_FROM_DATABASE=Zebax Technologies
|
||||
|
||||
|
@ -40403,9 +40403,15 @@ usb:v0B0Dp0000*
|
||||
usb:v0B0E*
|
||||
ID_VENDOR_FROM_DATABASE=GN Netcom
|
||||
|
||||
usb:v0B0Ep0301*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 20
|
||||
|
||||
usb:v0B0Ep0305*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE Link MS
|
||||
|
||||
usb:v0B0Ep030C*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
||||
|
||||
usb:v0B0Ep0311*
|
||||
ID_MODEL_FROM_DATABASE=Jabra EVOLVE 65
|
||||
|
||||
@ -40460,6 +40466,21 @@ usb:v0B0Ep2456*
|
||||
usb:v0B0Ep245E*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 370
|
||||
|
||||
usb:v0B0Ep248A*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Elite 85h
|
||||
|
||||
usb:v0B0Ep24B8*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 65
|
||||
|
||||
usb:v0B0Ep24BB*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Evolve2 85
|
||||
|
||||
usb:v0B0Ep24C9*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
||||
|
||||
usb:v0B0Ep24CA*
|
||||
ID_MODEL_FROM_DATABASE=Jabra Link 380
|
||||
|
||||
usb:v0B0Ep620C*
|
||||
ID_MODEL_FROM_DATABASE=Jabra BT620s
|
||||
|
||||
|
@ -137,4 +137,5 @@ IDEMIA,IDEM,06/26/2018
|
||||
"JUMPtec GmbH",JUMP,04/22/2025
|
||||
"Fsas Technologies Inc.",FSAS,04/30/2025
|
||||
"JP Morgan Chase N.A.",JPMC,05/30/2025
|
||||
"Roku, Inc.",ROKU,07/15/2025
|
||||
"Roku, Inc.",ROKU,07/15/2025
|
||||
"UltraRISC Technology (Shanghai) Co., Ltd",ULRV,09/15/2025
|
|
@ -203,12 +203,6 @@ DCD160 (base 16) Tianjin Changdatong Technology Co.,LTD
|
||||
Shenzhen Guangdong 518040
|
||||
CN
|
||||
|
||||
00-0E-72 (hex) Arca Technologies S.r.l.
|
||||
000E72 (base 16) Arca Technologies S.r.l.
|
||||
via Statale 17
|
||||
Bollengo Torino 10012
|
||||
IT
|
||||
|
||||
E0-C2-B7 (hex) Masimo Corporation
|
||||
E0C2B7 (base 16) Masimo Corporation
|
||||
52 Discovery
|
||||
@ -45800,12 +45794,6 @@ DCD83B (base 16) Cisco Systems, Inc
|
||||
Tallinn Harju maakond 15551
|
||||
EE
|
||||
|
||||
A0-F7-C3 (hex) FICOSA ELECTRONICS SLU
|
||||
A0F7C3 (base 16) FICOSA ELECTRONICS SLU
|
||||
Pol. Ind. Can Mitjans,Vial San Jordi s/n
|
||||
Viladecavalls Barcelona 08232
|
||||
ES
|
||||
|
||||
EC-46-84 (hex) Microsoft Corporation
|
||||
EC4684 (base 16) Microsoft Corporation
|
||||
One Microsoft Way
|
||||
@ -45836,6 +45824,120 @@ C86C9A (base 16) SNUC System
|
||||
Round Rock TX 78681
|
||||
US
|
||||
|
||||
00-0E-72 (hex) Sesami Technologies Srl
|
||||
000E72 (base 16) Sesami Technologies Srl
|
||||
via Statale 17
|
||||
Bollengo Torino 10012
|
||||
IT
|
||||
|
||||
44-39-AA (hex) G.Tech Technology Ltd.
|
||||
4439AA (base 16) G.Tech Technology Ltd.
|
||||
No.8,Jinyuan 1st Road,Tangjiawan Town, High-tech Zone
|
||||
Zhuhai Guangdong 519085
|
||||
CN
|
||||
|
||||
58-27-45 (hex) Angelbird Technologies GmbH
|
||||
582745 (base 16) Angelbird Technologies GmbH
|
||||
Steinebach 18
|
||||
Dornbirn Vorarlberg 6850
|
||||
AT
|
||||
|
||||
98-2C-C6 (hex) SERNET (SUZHOU) TECHNOLOGIES CORPORATION
|
||||
982CC6 (base 16) SERNET (SUZHOU) TECHNOLOGIES CORPORATION
|
||||
NO.8 Tangzhuang Road,Suzhou Industrial Park,Su ZhouCity,JiangSu Province,China
|
||||
Suzhou 215021
|
||||
CN
|
||||
|
||||
30-F6-5D (hex) Hewlett Packard Enterprise
|
||||
30F65D (base 16) Hewlett Packard Enterprise
|
||||
6280 America Center Dr
|
||||
San Jose CA 95002
|
||||
US
|
||||
|
||||
F0-3E-05 (hex) Murata Manufacturing Co., Ltd.
|
||||
F03E05 (base 16) Murata Manufacturing Co., Ltd.
|
||||
1-10-1, Higashikotari
|
||||
Nagaokakyo-shi Kyoto 617-8555
|
||||
JP
|
||||
|
||||
64-FA-2B (hex) Sagemcom Broadband SAS
|
||||
64FA2B (base 16) Sagemcom Broadband SAS
|
||||
250, route de l'Empereur
|
||||
Rueil Malmaison Cedex hauts de seine 92848
|
||||
FR
|
||||
|
||||
B0-A6-04 (hex) Espressif Inc.
|
||||
B0A604 (base 16) Espressif Inc.
|
||||
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
C0-2E-DF (hex) AltoBeam Inc.
|
||||
C02EDF (base 16) AltoBeam Inc.
|
||||
B808, Tsinghua Tongfang Hi-Tech Plaza, Haidian
|
||||
Beijing Beijing 100083
|
||||
CN
|
||||
|
||||
70-3E-76 (hex) Arcadyan Corporation
|
||||
703E76 (base 16) Arcadyan Corporation
|
||||
No.8, Sec.2, Guangfu Rd.
|
||||
Hsinchu City Hsinchu 30071
|
||||
TW
|
||||
|
||||
20-46-3A (hex) Apple, Inc.
|
||||
20463A (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
04-72-EF (hex) Apple, Inc.
|
||||
0472EF (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
D4-FF-1A (hex) Apple, Inc.
|
||||
D4FF1A (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
10-7D-C8 (hex) Apple, Inc.
|
||||
107DC8 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
C4-5B-AC (hex) Apple, Inc.
|
||||
C45BAC (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
F4-B5-99 (hex) Apple, Inc.
|
||||
F4B599 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
24-6D-10 (hex) Apple, Inc.
|
||||
246D10 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
A0-F7-C3 (hex) Ficosa Automotive SLU
|
||||
A0F7C3 (base 16) Ficosa Automotive SLU
|
||||
Pol. Ind. Can Mitjans,Vial San Jordi s/n
|
||||
Viladecavalls Barcelona 08232
|
||||
ES
|
||||
|
||||
B8-FB-B3 (hex) TP-Link Systems Inc.
|
||||
B8FBB3 (base 16) TP-Link Systems Inc.
|
||||
10 Mauchly
|
||||
Irvine CA 92618
|
||||
US
|
||||
|
||||
00-01-30 (hex) Extreme Networks Headquarters
|
||||
000130 (base 16) Extreme Networks Headquarters
|
||||
2121 RDU Center Drive
|
||||
@ -90941,12 +91043,6 @@ EC97E0 (base 16) Hangzhou Ezviz Software Co.,Ltd.
|
||||
Sunnyvale CA 94089
|
||||
US
|
||||
|
||||
A4-F0-0F (hex) Espressif Inc.
|
||||
A4F00F (base 16) Espressif Inc.
|
||||
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
EC-96-BF (hex) Kontron eSystems GmbH
|
||||
EC96BF (base 16) Kontron eSystems GmbH
|
||||
Bahnhofstraße 100
|
||||
@ -90965,6 +91061,117 @@ F09258 (base 16) China Electronics Cloud Computing Technology Co., Ltd
|
||||
Wuhan Hubei 430090
|
||||
CN
|
||||
|
||||
A4-F0-0F (hex) Espressif Inc.
|
||||
A4F00F (base 16) Espressif Inc.
|
||||
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
2C-8D-48 (hex) Smart Innovation LLC
|
||||
2C8D48 (base 16) Smart Innovation LLC
|
||||
7F,Tower B,Jianxing
|
||||
ShenZhen GuangZhou 518055
|
||||
CN
|
||||
|
||||
38-8C-EF (hex) Samsung Electronics Co.,Ltd
|
||||
388CEF (base 16) Samsung Electronics Co.,Ltd
|
||||
129, Samsung-ro, Youngtongl-Gu
|
||||
Suwon Gyeonggi-Do 16677
|
||||
KR
|
||||
|
||||
58-60-10 (hex) shenzhen zovoton electronic co.,ltd
|
||||
586010 (base 16) shenzhen zovoton electronic co.,ltd
|
||||
1F 4 Blok, jinrui zhonghe industrial park, huarong road, tongsheng community, dalang street, longhua district, Shenzhen city, Guangdong province, china
|
||||
shenzhen guangdong 518100
|
||||
CN
|
||||
|
||||
0C-C5-74 (hex) FRITZ! Technology GmbH
|
||||
0CC574 (base 16) FRITZ! Technology GmbH
|
||||
Alt-Moabit 95
|
||||
Berlin Berlin 10559
|
||||
DE
|
||||
|
||||
84-70-03 (hex) Axon Networks Inc.
|
||||
847003 (base 16) Axon Networks Inc.
|
||||
15420 Laguna Canyon rd.
|
||||
Irvine CA 92618
|
||||
US
|
||||
|
||||
A0-FF-FD (hex) HMD Global Oy
|
||||
A0FFFD (base 16) HMD Global Oy
|
||||
Bertel Jungin aukio 9
|
||||
Espoo 02600
|
||||
FI
|
||||
|
||||
30-7A-D2 (hex) Apple, Inc.
|
||||
307AD2 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
D4-2D-CC (hex) Apple, Inc.
|
||||
D42DCC (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
04-2E-C1 (hex) Apple, Inc.
|
||||
042EC1 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
B4-55-75 (hex) Apple, Inc.
|
||||
B45575 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
68-30-36 (hex) Apple, Inc.
|
||||
683036 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
28-4B-54 (hex) Apple, Inc.
|
||||
284B54 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
6C-E4-A4 (hex) Silicon Laboratories
|
||||
6CE4A4 (base 16) Silicon Laboratories
|
||||
400 West Cesar Chavez
|
||||
Austin TX 78701
|
||||
US
|
||||
|
||||
90-3F-86 (hex) New H3C Technologies Co., Ltd
|
||||
903F86 (base 16) New H3C Technologies Co., Ltd
|
||||
466 Changhe Road, Binjiang District
|
||||
Hangzhou Zhejiang 310052
|
||||
CN
|
||||
|
||||
6C-88-5F (hex) Private
|
||||
6C885F (base 16) Private
|
||||
|
||||
60-D4-AF (hex) Honor Device Co., Ltd.
|
||||
60D4AF (base 16) Honor Device Co., Ltd.
|
||||
Suite 3401, Unit A, Building 6, Shum Yip Sky Park, No. 8089, Hongli West Road, Xiangmihu Street, Futian District
|
||||
Shenzhen Guangdong 518040
|
||||
CN
|
||||
|
||||
A0-E3-90 (hex) Apple, Inc.
|
||||
A0E390 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
6C-4C-BC (hex) TP-Link Systems Inc.
|
||||
6C4CBC (base 16) TP-Link Systems Inc.
|
||||
10 Mauchly
|
||||
Irvine CA 92618
|
||||
US
|
||||
|
||||
6C-87-20 (hex) New H3C Technologies Co., Ltd
|
||||
6C8720 (base 16) New H3C Technologies Co., Ltd
|
||||
466 Changhe Road, Binjiang District
|
||||
@ -135389,12 +135596,6 @@ A4DB4C (base 16) RAI Institute
|
||||
San Francisco CA 94107
|
||||
US
|
||||
|
||||
F8-EF-B1 (hex) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
|
||||
F8EFB1 (base 16) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
|
||||
Room 809, Building B, No. 567 Yueming Road, Xixing Street,
|
||||
Hangzhou Binjiang Distric 310000
|
||||
CN
|
||||
|
||||
2C-91-AB (hex) AVM Audiovisuelles Marketing und Computersysteme GmbH
|
||||
2C91AB (base 16) AVM Audiovisuelles Marketing und Computersysteme GmbH
|
||||
Alt-Moabit 95
|
||||
@ -136283,6 +136484,90 @@ E8F60A (base 16) Espressif Inc.
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
BC-89-F8 (hex) GD Midea Air-Conditioning Equipment Co.,Ltd.
|
||||
BC89F8 (base 16) GD Midea Air-Conditioning Equipment Co.,Ltd.
|
||||
Midea Global Innovation Center,Beijiao Town,Shunde
|
||||
Foshan Guangdong 528311
|
||||
CN
|
||||
|
||||
80-57-22 (hex) Wuxi Sunning Smart Devices Co., Ltd
|
||||
805722 (base 16) Wuxi Sunning Smart Devices Co., Ltd
|
||||
No.52, Zone C, Huigu Pioneer Park, Huishan Economic Development Zone, Wuxi
|
||||
Wuxi jiangsu 214174
|
||||
CN
|
||||
|
||||
F8-EF-B1 (hex) Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.
|
||||
F8EFB1 (base 16) Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.
|
||||
Room 809, Building B, No. 567 Yueming Road, Xixing Street,
|
||||
Hangzhou Binjiang Distric 310000
|
||||
CN
|
||||
|
||||
C0-2E-5F (hex) Zyxel Communications Corporation
|
||||
C02E5F (base 16) Zyxel Communications Corporation
|
||||
No. 6 Innovation Road II, Science Park
|
||||
Hsichu Taiwan 300
|
||||
TW
|
||||
|
||||
24-A1-0D (hex) IEEE Registration Authority
|
||||
24A10D (base 16) IEEE Registration Authority
|
||||
445 Hoes Lane
|
||||
Piscataway NJ 08554
|
||||
US
|
||||
|
||||
A8-C0-50 (hex) Quectel Wireless Solutions Co.,Ltd.
|
||||
A8C050 (base 16) Quectel Wireless Solutions Co.,Ltd.
|
||||
7th Floor, Hongye Building, No.1801 Hongmei Road, Xuhui District
|
||||
Shanghai 200233
|
||||
CN
|
||||
|
||||
1C-C3-AB (hex) Espressif Inc.
|
||||
1CC3AB (base 16) Espressif Inc.
|
||||
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
08-3B-C1 (hex) Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
083BC1 (base 16) Hangzhou Hikvision Digital Technology Co.,Ltd.
|
||||
No.555 Qianmo Road
|
||||
Hangzhou Zhejiang 310052
|
||||
CN
|
||||
|
||||
B4-B8-53 (hex) Honor Device Co., Ltd.
|
||||
B4B853 (base 16) Honor Device Co., Ltd.
|
||||
Suite 3401, Unit A, Building 6, Shum Yip Sky Park, No. 8089, Hongli West Road, Xiangmihu Street, Futian District
|
||||
Shenzhen Guangdong 518040
|
||||
CN
|
||||
|
||||
F8-F2-F0 (hex) Chipsea Technologies (Shenzhen) Crop.
|
||||
F8F2F0 (base 16) Chipsea Technologies (Shenzhen) Crop.
|
||||
Room 301, Building 1, Shenzhen Bay Innovation and Technology Center, Keyuan Avenue, High-tech Zone Community, Yuehai Subdistrict, Nanshan District, Shenzhen
|
||||
Shenzhen 518000
|
||||
CN
|
||||
|
||||
E4-2F-37 (hex) Apple, Inc.
|
||||
E42F37 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
64-BD-6D (hex) Apple, Inc.
|
||||
64BD6D (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
E8-C3-86 (hex) Apple, Inc.
|
||||
E8C386 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
58-04-4F (hex) TP-Link Systems Inc.
|
||||
58044F (base 16) TP-Link Systems Inc.
|
||||
10 Mauchly
|
||||
Irvine CA 92618
|
||||
US
|
||||
|
||||
B0-0C-9D (hex) Quectel Wireless Solutions Co.,Ltd.
|
||||
B00C9D (base 16) Quectel Wireless Solutions Co.,Ltd.
|
||||
7th Floor, Hongye Building, No.1801 Hongmei Road, Xuhui District
|
||||
@ -182090,12 +182375,6 @@ EC8152 (base 16) HUAWEI TECHNOLOGIES CO.,LTD
|
||||
San Jose CA 94568
|
||||
US
|
||||
|
||||
54-D6-0D (hex) Hangzhou Ezviz Software Co.,Ltd.
|
||||
54D60D (base 16) Hangzhou Ezviz Software Co.,Ltd.
|
||||
17th Floor, Building D, No.188 Qizhi East Stree, Xixing Subdistrict, Binjiang District
|
||||
Hangzhou Zhejiang 310051
|
||||
CN
|
||||
|
||||
58-8F-CF (hex) Hangzhou Ezviz Software Co.,Ltd.
|
||||
588FCF (base 16) Hangzhou Ezviz Software Co.,Ltd.
|
||||
17th Floor, Building D, No.188 Qizhi East Stree, Xixing Subdistrict, Binjiang District
|
||||
@ -182114,11 +182393,11 @@ EC8152 (base 16) HUAWEI TECHNOLOGIES CO.,LTD
|
||||
Shanghai 201206
|
||||
CN
|
||||
|
||||
00-0B-0F (hex) Bosch Rexroth AG
|
||||
000B0F (base 16) Bosch Rexroth AG
|
||||
Bgm.-Dr.Nebel-Str.2
|
||||
Lohr am Main 97816
|
||||
NL
|
||||
54-D6-0D (hex) Hangzhou Ezviz Software Co.,Ltd.
|
||||
54D60D (base 16) Hangzhou Ezviz Software Co.,Ltd.
|
||||
17th Floor, Building D, No.188 Qizhi East Stree, Xixing Subdistrict, Binjiang District
|
||||
Hangzhou Zhejiang 310051
|
||||
CN
|
||||
|
||||
D4-0D-AB (hex) Shenzhen Cudy Technology Co., Ltd.
|
||||
D40DAB (base 16) Shenzhen Cudy Technology Co., Ltd.
|
||||
@ -182132,6 +182411,96 @@ D40DAB (base 16) Shenzhen Cudy Technology Co., Ltd.
|
||||
shenzhen guangdong 518057
|
||||
CN
|
||||
|
||||
00-0B-0F (hex) Bosch Rexroth AG
|
||||
000B0F (base 16) Bosch Rexroth AG
|
||||
Bgm.-Dr.Nebel-Str.2
|
||||
Lohr am Main 97816
|
||||
NL
|
||||
|
||||
84-93-EC (hex) Guangzhou Shiyuan Electronic Technology Company Limited
|
||||
8493EC (base 16) Guangzhou Shiyuan Electronic Technology Company Limited
|
||||
No.6, 4th Yunpu Road, Yunpu industry District
|
||||
Guangzhou Guangdong 510530
|
||||
CN
|
||||
|
||||
F0-70-84 (hex) Actiontec Electronics Inc.
|
||||
F07084 (base 16) Actiontec Electronics Inc.
|
||||
2445 Augustine Dr #501
|
||||
Santa Clara CA 95054
|
||||
US
|
||||
|
||||
40-44-F7 (hex) Nintendo Co.,Ltd
|
||||
4044F7 (base 16) Nintendo Co.,Ltd
|
||||
11-1 HOKOTATE-CHO KAMITOBA,MINAMI-KU
|
||||
KYOTO KYOTO 601-8501
|
||||
JP
|
||||
|
||||
A4-05-FD (hex) Bouffalo Lab (Nanjing) Co., Ltd.
|
||||
A405FD (base 16) Bouffalo Lab (Nanjing) Co., Ltd.
|
||||
5F, Gongxiang Space, No.100 Tuanjie Road, Nanjing, China
|
||||
Nanjing Jiangsu 211800
|
||||
CN
|
||||
|
||||
3C-22-7F (hex) Quectel Wireless Solutions Co., Ltd.
|
||||
3C227F (base 16) Quectel Wireless Solutions Co., Ltd.
|
||||
Building 5, Shanghai Business Park Phase III (Area B), No.1016 Tianlin Road, Minhang District
|
||||
Shanghai 200233
|
||||
CN
|
||||
|
||||
A0-90-B5 (hex) Tiinlab Corporation
|
||||
A090B5 (base 16) Tiinlab Corporation
|
||||
Building A Room 201 Cooperation District between Shenzhen and HongKong,Qianwan Road No.1,Shenzhen City, Business Address:No. 3333, Liuxian AvenueTower A, 35th Floor,Tanglang City, Nanshan District, Shenzhen, China
|
||||
Shenzhen Guangdong 518000
|
||||
CN
|
||||
|
||||
28-83-28 (hex) EMALDO TECHNOLOGY(HK)LIMITED
|
||||
288328 (base 16) EMALDO TECHNOLOGY(HK)LIMITED
|
||||
13/F., Golden Dragon Comm. Bldg., 522 Nathan Road, Yau Ma Tei, Kowloon
|
||||
HONG KONG 999077
|
||||
HK
|
||||
|
||||
B0-1F-F4 (hex) Sagemcom Broadband SAS
|
||||
B01FF4 (base 16) Sagemcom Broadband SAS
|
||||
250, route de l'Empereur
|
||||
Rueil Malmaison Cedex hauts de seine 92848
|
||||
FR
|
||||
|
||||
AC-EB-E6 (hex) Espressif Inc.
|
||||
ACEBE6 (base 16) Espressif Inc.
|
||||
Room 204, Building 2, 690 Bibo Rd, Pudong New Area
|
||||
Shanghai Shanghai 201203
|
||||
CN
|
||||
|
||||
E8-B3-EE (hex) Pixelent Inc.
|
||||
E8B3EE (base 16) Pixelent Inc.
|
||||
#402 HanGuk Mediventure Center
|
||||
76, Dongnae-ro, Dong-gu Daegu 41061
|
||||
KR
|
||||
|
||||
6C-7A-63 (hex) Arista Networks
|
||||
6C7A63 (base 16) Arista Networks
|
||||
5453 Great America Parkway
|
||||
Santa Clara CA 95054
|
||||
US
|
||||
|
||||
C4-16-8F (hex) Apple, Inc.
|
||||
C4168F (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
F8-2A-E2 (hex) Apple, Inc.
|
||||
F82AE2 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
||||
84-5C-31 (hex) Dell Inc.
|
||||
845C31 (base 16) Dell Inc.
|
||||
One Dell Way
|
||||
Round Rock TX 78682
|
||||
US
|
||||
|
||||
C8-5C-E2 (hex) IEEE Registration Authority
|
||||
C85CE2 (base 16) IEEE Registration Authority
|
||||
445 Hoes Lane
|
||||
@ -227558,8 +227927,86 @@ E88F16 (base 16) Skullcandy
|
||||
Copenhagen 2450
|
||||
DK
|
||||
|
||||
D8-91-1D (hex) Jiangsu Yuwell POCTech Biotechnology Co.,Ltd
|
||||
D8911D (base 16) Jiangsu Yuwell POCTech Biotechnology Co.,Ltd
|
||||
No.5 Baisheng Road Development Zone, 212300 Danyang, Jiangsu, PEOPLE’S REPUBLIC OF CHINA
|
||||
Danyang 212300
|
||||
CN
|
||||
|
||||
30-07-5C (hex) 43403
|
||||
30075C (base 16) 43403
|
||||
8 Floor, Bd B, information port, Langshan RD, Nanshan district,
|
||||
Shenzhen Guangdong 518057
|
||||
CN
|
||||
|
||||
AC-39-3D (hex) eero inc.
|
||||
AC393D (base 16) eero inc.
|
||||
660 3rd Street
|
||||
San Francisco CA 94107
|
||||
US
|
||||
|
||||
00-E6-07 (hex) AURCORE TECHNOLOGY INC.
|
||||
00E607 (base 16) AURCORE TECHNOLOGY INC.
|
||||
25691 ATLANTIC OCEAN DRIVE UNIT B10
|
||||
LAKE FOREST CA 92630
|
||||
US
|
||||
|
||||
2C-27-E4 (hex) Luxshare Precision Industry (Xuancheng) Co.,Ltd.
|
||||
2C27E4 (base 16) Luxshare Precision Industry (Xuancheng) Co.,Ltd.
|
||||
Address: No.5 Baishou Road, Xuancheng High-Tech Industrial Development Zone
|
||||
Xuancheng Anhui 242000
|
||||
CN
|
||||
|
||||
4C-D7-4A (hex) Vantiva USA LLC
|
||||
4CD74A (base 16) Vantiva USA LLC
|
||||
4855 Peachtree Industrial Blvd, Suite 200
|
||||
Norcross GA 30902
|
||||
US
|
||||
|
||||
FC-96-3E (hex) EM Microelectronic
|
||||
FC963E (base 16) EM Microelectronic
|
||||
Rue des Sors 3
|
||||
Marin-Epagnier Neuchatel 2074
|
||||
CH
|
||||
|
||||
FC-CF-9F (hex) EM Microelectronic
|
||||
FCCF9F (base 16) EM Microelectronic
|
||||
Rue des Sors 3
|
||||
Marin-Epagnier Neuchatel 2074
|
||||
CH
|
||||
|
||||
B4-04-29 (hex) Guangzhou Shiyuan Electronic Technology Company Limited
|
||||
B40429 (base 16) Guangzhou Shiyuan Electronic Technology Company Limited
|
||||
No.6, 4th Yunpu Road, Yunpu industry District
|
||||
Guangzhou Guangdong 510530
|
||||
CN
|
||||
|
||||
D4-25-DE (hex) New H3C Technologies Co., Ltd
|
||||
D425DE (base 16) New H3C Technologies Co., Ltd
|
||||
466 Changhe Road, Binjiang District
|
||||
Hangzhou Zhejiang 310052
|
||||
CN
|
||||
|
||||
B0-E8-E8 (hex) Silicon Laboratories
|
||||
B0E8E8 (base 16) Silicon Laboratories
|
||||
400 West Cesar Chavez
|
||||
Austin TX 78701
|
||||
US
|
||||
|
||||
64-69-11 (hex) APTIV SERVICES US, LLC
|
||||
646911 (base 16) APTIV SERVICES US, LLC
|
||||
5725 Innovation Drive
|
||||
Troy MI 48098
|
||||
US
|
||||
|
||||
04-D6-88 (hex) CIG SHANGHAI CO LTD
|
||||
04D688 (base 16) CIG SHANGHAI CO LTD
|
||||
5th Floor, Building 8 No 2388 Chenhang Road
|
||||
SHANGHAI 201114
|
||||
CN
|
||||
|
||||
78-79-84 (hex) Apple, Inc.
|
||||
787984 (base 16) Apple, Inc.
|
||||
1 Infinite Loop
|
||||
Cupertino CA 95014
|
||||
US
|
||||
|
@ -968,12 +968,6 @@ C00000-CFFFFF (base 16) BlueEyes Technology
|
||||
Suresnes 92150
|
||||
FR
|
||||
|
||||
6C-93-08 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
500000-5FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
6C-93-08 (hex) WATERFORD CONSULTANTS LLC
|
||||
100000-1FFFFF (base 16) WATERFORD CONSULTANTS LLC
|
||||
7430 NEW TECHNOLOGY WAY, Suite 150
|
||||
@ -1634,12 +1628,6 @@ A4-53-EE (hex) Stellamore
|
||||
Shenzhen Guangdong 518100
|
||||
CN
|
||||
|
||||
8C-AE-49 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
E00000-EFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
88-5F-E8 (hex) Apoidea Technology Co., Ltd.
|
||||
100000-1FFFFF (base 16) Apoidea Technology Co., Ltd.
|
||||
No. 111, Boyun Road
|
||||
@ -5969,12 +5957,6 @@ A00000-AFFFFF (base 16) Fancom
|
||||
Panningen Limburg 5981 XW
|
||||
NL
|
||||
|
||||
78-39-2D (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C8-98-DB (hex) Quantum Co., Ltd.
|
||||
600000-6FFFFF (base 16) Quantum Co., Ltd.
|
||||
909-15, Ganam-ro, Ganam-eup
|
||||
@ -6200,12 +6182,6 @@ C00000-CFFFFF (base 16) Huizhou KDT Intelligent Display Technology Co. Ltd
|
||||
Huizhou Guangdong 516006
|
||||
CN
|
||||
|
||||
34-C8-D6 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
E00000-EFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
34-C8-D6 (hex) Illumina
|
||||
800000-8FFFFF (base 16) Illumina
|
||||
5200 Illumina Way
|
||||
@ -6386,12 +6362,6 @@ B00000-BFFFFF (base 16) Shen zhen shi shang mei dian zi shang wu you xian g
|
||||
Shenzhen Guangdong Province 518100
|
||||
CN
|
||||
|
||||
10-63-A3 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
800000-8FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
5C-87-D8 (hex) Shenzhen Beiens Import and Export Co.,Ltd
|
||||
300000-3FFFFF (base 16) Shenzhen Beiens Import and Export Co.,Ltd
|
||||
Suite 503, Building U3, Junxiang U8 Intelligent Manufacturing Industrial Park, Guxing Community, Xixiang Street, Baoan District, Shenzhen
|
||||
@ -7028,12 +6998,6 @@ F8-2B-E6 (hex) ViewSonic Corp
|
||||
LA CA 92821
|
||||
US
|
||||
|
||||
F8-2B-E6 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
B00000-BFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
F8-2B-E6 (hex) Flextronics Computing(SuZhou)Co.,LTD.
|
||||
200000-2FFFFF (base 16) Flextronics Computing(SuZhou)Co.,LTD.
|
||||
No.1 Guanpu Road, Guoxiang Street, Wuzhong District,Suzhou, Jiangsu, China
|
||||
@ -7205,12 +7169,6 @@ B00000-BFFFFF (base 16) Chengdu Juxun Electronic Technology Co.,Ltd
|
||||
Chengdu Sichuan 610500
|
||||
CN
|
||||
|
||||
04-58-5D (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
E00000-EFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
B0-CC-CE (hex) Steelco SpA
|
||||
000000-0FFFFF (base 16) Steelco SpA
|
||||
via Balegante 27
|
||||
@ -7367,6 +7325,66 @@ F4-97-9D (hex) Smart Access Designs, LLC
|
||||
Cheshire CT 06410
|
||||
US
|
||||
|
||||
F8-2B-E6 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
B00000-BFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
04-58-5D (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
E00000-EFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
78-39-2D (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
700000-7FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
34-C8-D6 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
E00000-EFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
10-63-A3 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
800000-8FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
8C-AE-49 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
E00000-EFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
6C-93-08 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
500000-5FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) Strato Automation Inc.
|
||||
400000-4FFFFF (base 16) Strato Automation Inc.
|
||||
1550-B Rue de Coulomb
|
||||
Boucherville Quebec J4B 7Z7
|
||||
CA
|
||||
|
||||
9C-E4-50 (hex) Neways Advanced Applications
|
||||
500000-5FFFFF (base 16) Neways Advanced Applications
|
||||
Science Park Eindhoven 5004
|
||||
Son 5692EA
|
||||
NL
|
||||
|
||||
24-A1-0D (hex) Lobaro GmbH
|
||||
000000-0FFFFF (base 16) Lobaro GmbH
|
||||
Stadtdeich 7
|
||||
Hamburg 20097
|
||||
DE
|
||||
|
||||
B8-4C-87 (hex) Shenzhen Link-all Technology Co., Ltd
|
||||
300000-3FFFFF (base 16) Shenzhen Link-all Technology Co., Ltd
|
||||
Floor 5th, Block 9th, Sunny Industrial Zone, Xili Town, Nanshan District, Shenzhen, China
|
||||
@ -8663,12 +8681,6 @@ C00000-CFFFFF (base 16) Beijing Aumiwalker technology CO.,LTD
|
||||
SINGAPORE SINGAPORE 380118
|
||||
SG
|
||||
|
||||
38-A8-CD (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
38-A8-CD (hex) ACiiST Smart Networks Ltd.
|
||||
000000-0FFFFF (base 16) ACiiST Smart Networks Ltd.
|
||||
119 Ha'Mamshichim
|
||||
@ -13463,12 +13475,6 @@ EC-5B-CD (hex) Doosan Bobcat North America
|
||||
Minatoku Tokyo 1080073
|
||||
JP
|
||||
|
||||
F4-20-55 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
A00000-AFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
24-86-25 (hex) Shanghai Xizhi Technology Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shanghai Xizhi Technology Co., Ltd.
|
||||
Room 401, Building A, Lenovo Innovation And Technology Park, No. 696, Songtao Road
|
||||
@ -13622,12 +13628,6 @@ B0-47-5E (hex) MIVO Technology AB
|
||||
Stockholm 11419
|
||||
SE
|
||||
|
||||
B0-47-5E (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
AC-EF-92 (hex) PROGNOST Systems GmbH
|
||||
500000-5FFFFF (base 16) PROGNOST Systems GmbH
|
||||
Daimlerstrasse 10
|
||||
@ -13736,12 +13736,6 @@ A4-59-D3 (hex) FrontAct Co., Ltd.
|
||||
wuhan hubei 430206
|
||||
CN
|
||||
|
||||
58-23-BC (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
400000-4FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
BC-DF-E1 (hex) Shenzhen Valley Ventures Co.,Ltd.
|
||||
100000-1FFFFF (base 16) Shenzhen Valley Ventures Co.,Ltd.
|
||||
905,Building 4,Tianan Cloud park, Bantian street, Longgang district
|
||||
@ -14066,12 +14060,6 @@ B00000-BFFFFF (base 16) GIGA Copper Networks GmbH
|
||||
Düsseldorf 40470
|
||||
DE
|
||||
|
||||
FC-E4-98 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
300000-3FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
FC-E4-98 (hex) TScale Electronics Mfg. (Kunshan) Co., Ltd
|
||||
400000-4FFFFF (base 16) TScale Electronics Mfg. (Kunshan) Co., Ltd
|
||||
No. 99 Jingwei Road, Zhoushi
|
||||
@ -14222,12 +14210,84 @@ E00000-EFFFFF (base 16) Advant sp. z o.o.
|
||||
Shenzhen Guangdong 518101
|
||||
CN
|
||||
|
||||
F4-20-55 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
A00000-AFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
B0-47-5E (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
000000-0FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
58-23-BC (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
400000-4FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
38-A8-CD (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
700000-7FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) AIO SYSTEMS
|
||||
100000-1FFFFF (base 16) AIO SYSTEMS
|
||||
158 Jan smuts drive,Walter streetRosebank quarter
|
||||
Johannesburg 2196
|
||||
ZA
|
||||
|
||||
9C-E4-50 (hex) Shenzhen Lixun Technology Co., Ltd.
|
||||
200000-2FFFFF (base 16) Shenzhen Lixun Technology Co., Ltd.
|
||||
Room 209, Building D, Xinda Creative Park, Qianjin 2nd Road and Baotian 2nd Road, Bao'an District
|
||||
Shenzhen 518102
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) REVUPTECH PRIVATE LIMITED
|
||||
C00000-CFFFFF (base 16) REVUPTECH PRIVATE LIMITED
|
||||
G 232, G.B. NAGAR SECTOR 63 NOIDA
|
||||
NOIDA UTTAR PRADESH 201301
|
||||
IN
|
||||
|
||||
9C-E4-50 (hex) Marelli AL&S ALIT-TZ
|
||||
300000-3FFFFF (base 16) Marelli AL&S ALIT-TZ
|
||||
Via dell'industria 17
|
||||
Tolmezzo Italy/Udine 33028
|
||||
IT
|
||||
|
||||
FC-E4-98 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
300000-3FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) BCD SRL
|
||||
D00000-DFFFFF (base 16) BCD SRL
|
||||
Galvez 1060
|
||||
Rosario FOREIGN 2000
|
||||
AR
|
||||
|
||||
24-A1-0D (hex) Tecnojest SrL
|
||||
900000-9FFFFF (base 16) Tecnojest SrL
|
||||
Viale Europa, 128 Spoltore
|
||||
Spoltore 65010
|
||||
IT
|
||||
|
||||
24-A1-0D (hex) Detroit Defense Inc.
|
||||
A00000-AFFFFF (base 16) Detroit Defense Inc.
|
||||
300 E Big Beaver Rd Suite 100
|
||||
Troy MI 48083
|
||||
US
|
||||
|
||||
24-A1-0D (hex) Goertek Inc.
|
||||
600000-6FFFFF (base 16) Goertek Inc.
|
||||
No. 999 Liyuan Street, High-Tech Industrial Development District
|
||||
Weifang Shandong 261000
|
||||
CN
|
||||
|
||||
B8-4C-87 (hex) Altronix , Corp
|
||||
A00000-AFFFFF (base 16) Altronix , Corp
|
||||
140 58th St. Bldg A, Ste 2N
|
||||
@ -15086,12 +15146,6 @@ A00000-AFFFFF (base 16) Shenzhen Yunlianxin Technology Co., Ltd.
|
||||
Mail box 15123 Haifa 3508409
|
||||
IL
|
||||
|
||||
18-C3-F4 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
D00000-DFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
18-C3-F4 (hex) Shenzhen Yecon-Tech Co.,Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen Yecon-Tech Co.,Ltd.
|
||||
Building 2,Cuigang Industrial Zone 6,Huaide Community,Fuyong Town,Baoan District, Shenzhen City, Guangdong province, China
|
||||
@ -15254,12 +15308,6 @@ B00000-BFFFFF (base 16) Beijing Shannoncyber Technology Co.,Ltd
|
||||
Chengdu Sichuan 650000
|
||||
CN
|
||||
|
||||
70-50-E7 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
80-02-F4 (hex) Jiangsu Vedkang Medicl Sclence and Technology Co.,Ltd
|
||||
D00000-DFFFFF (base 16) Jiangsu Vedkang Medicl Sclence and Technology Co.,Ltd
|
||||
No. 52, Guoxiang Road, Wujin economic development zone
|
||||
@ -16082,12 +16130,6 @@ C00000-CFFFFF (base 16) Ariston Thermo s.p.a.
|
||||
Fabriano Ancona 60044
|
||||
IT
|
||||
|
||||
0C-5C-B5 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
800000-8FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
0C-5C-B5 (hex) iH&S Technology Limited
|
||||
300000-3FFFFF (base 16) iH&S Technology Limited
|
||||
iH&S Technology Limited
|
||||
@ -16412,12 +16454,6 @@ DC-4A-9E (hex) Advanced Electronics Ltd
|
||||
Newcastle NE12 8EW
|
||||
GB
|
||||
|
||||
58-95-D8 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
800000-8FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
FC-CD-2F (hex) Eltek brojila d.o.o.
|
||||
E00000-EFFFFF (base 16) Eltek brojila d.o.o.
|
||||
Svetice 24
|
||||
@ -16874,12 +16910,6 @@ B00000-BFFFFF (base 16) Signal Hound
|
||||
Vista CA 92081
|
||||
US
|
||||
|
||||
64-62-66 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
14-AE-85 (hex) Trimble LEM
|
||||
800000-8FFFFF (base 16) Trimble LEM
|
||||
10368 Westmoor Dr
|
||||
@ -18170,12 +18200,6 @@ C00000-CFFFFF (base 16) AndroVideo Inc.
|
||||
Jinhua Zhejiang 321000
|
||||
CN
|
||||
|
||||
C4-FF-BC (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
600000-6FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C4-FF-BC (hex) ShenZhen ZYT Technology co., Ltd
|
||||
800000-8FFFFF (base 16) ShenZhen ZYT Technology co., Ltd
|
||||
Floor four,Build C,FuSen Industrial park, HangCheng Avenue,Baoan District
|
||||
@ -20777,12 +20801,6 @@ B00000-BFFFFF (base 16) Vital Oricraft Flows Technology Co., Ltd.
|
||||
Qingyuan Guangdong 511500
|
||||
CN
|
||||
|
||||
48-5E-0E (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
48-5E-0E (hex) MHE Electronics
|
||||
400000-4FFFFF (base 16) MHE Electronics
|
||||
49Alexander Rd, Westmead
|
||||
@ -21041,12 +21059,6 @@ B00000-BFFFFF (base 16) Hitachi Rail GTS Austria GmbH
|
||||
Vienna 1200
|
||||
AT
|
||||
|
||||
EC-74-CD (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
100000-1FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
EC-74-CD (hex) Standard Backhaul Communications
|
||||
500000-5FFFFF (base 16) Standard Backhaul Communications
|
||||
333 South Highland Ave
|
||||
@ -21341,12 +21353,6 @@ FC-A2-DF (hex) Beijing KSL Electromechanical Technology Development Co.,Ltd
|
||||
Beijing 100071
|
||||
CN
|
||||
|
||||
60-A4-34 (hex) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
|
||||
200000-2FFFFF (base 16) Hangzhou Zhongxinhui lntelligent Technology Co.,Ltd.
|
||||
Room 809, Building B, No. 567 Yueming Road, Xixing Street,
|
||||
Hangzhou Binjiang Distric 310000
|
||||
CN
|
||||
|
||||
FC-A2-DF (hex) Orion Power Systems, Inc.
|
||||
E00000-EFFFFF (base 16) Orion Power Systems, Inc.
|
||||
2939 W. Beaver Street
|
||||
@ -21569,18 +21575,111 @@ E0-23-3B (hex) PluralFusion INC
|
||||
Hochiminh Hochiminh 70000
|
||||
VN
|
||||
|
||||
64-62-66 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
700000-7FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
58-95-D8 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
800000-8FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
0C-5C-B5 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
800000-8FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
70-50-E7 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
000000-0FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
18-C3-F4 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
D00000-DFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
50-FA-CB (hex) Darveen Technology Limited
|
||||
400000-4FFFFF (base 16) Darveen Technology Limited
|
||||
3/F, 2nd Building Hui Sheng Da industrial park, Qingcui road, Longhua district, Shenzhen
|
||||
Shenzhen Guangdong 518000
|
||||
CN
|
||||
|
||||
48-5E-0E (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
000000-0FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
EC-74-CD (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
100000-1FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C4-FF-BC (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
600000-6FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
50-FA-CB (hex) Shenzhen Evertones Quantum Technology Co., Ltd.
|
||||
100000-1FFFFF (base 16) Shenzhen Evertones Quantum Technology Co., Ltd.
|
||||
Room 3907, Tower B, Digital Innovation Center, Beizhan Community, Minzhi Sub-district, Longhua District
|
||||
Shenzhen Guangdong 518131
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) Shenzhen Star Instrument Co., Ltd.
|
||||
100000-1FFFFF (base 16) Shenzhen Star Instrument Co., Ltd.
|
||||
23/F., Coastal Building(west), Haide 3rd Road, Nanshan District
|
||||
Shenzhen GuangDong 518054
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) Private
|
||||
B00000-BFFFFF (base 16) Private
|
||||
|
||||
60-A4-34 (hex) Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.
|
||||
200000-2FFFFF (base 16) Hangzhou Zhongxinghui Intelligent Technology Co., Ltd.
|
||||
Room 809, Building B, No. 567 Yueming Road, Xixing Street,
|
||||
Hangzhou Binjiang Distric 310000
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) BEIJING TRANSTREAMS TECHNOLOGY CO.,LTD
|
||||
700000-7FFFFF (base 16) BEIJING TRANSTREAMS TECHNOLOGY CO.,LTD
|
||||
Room 1401, 14th Floor, Building 8, No. 8 Kegu 1st Street, Beijing Economic and Technological Development Zone
|
||||
Beijing Beijing 100176
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) Shenzhen Kuki Electric Co., Ltd.
|
||||
E00000-EFFFFF (base 16) Shenzhen Kuki Electric Co., Ltd.
|
||||
No.6 Shichang Road,Xinqiao Street Baoan District,Shenzhen,Guangdong
|
||||
Shenzhen Guangdong 518125
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) Shenzhen HQVT TECHNOLOGY Co.,LTD
|
||||
900000-9FFFFF (base 16) Shenzhen HQVT TECHNOLOGY Co.,LTD
|
||||
3/F,Building 8 ,Taihua Wutong Island,Xixiang,Bao'an District
|
||||
China Guang Dong 518000
|
||||
CN
|
||||
|
||||
9C-E4-50 (hex) Shenzhen Coslight Technology Co.,Ltd.
|
||||
B00000-BFFFFF (base 16) Shenzhen Coslight Technology Co.,Ltd.
|
||||
Room 101, Factory Building, No. 2 Guangtian Road, Luotian Community, Yanluo Sub-district, Bao'an District, Shenzhen
|
||||
Shenzhen 518000
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) Sony Honda Mobility Inc.
|
||||
200000-2FFFFF (base 16) Sony Honda Mobility Inc.
|
||||
Midtown-East 9th floor, 9-7-2 Akasaka
|
||||
Minato-ku Tokyo 107-0052
|
||||
JP
|
||||
|
||||
D0-14-11 (hex) P.B. Elettronica srl
|
||||
100000-1FFFFF (base 16) P.B. Elettronica srl
|
||||
Via Santorelli, 8
|
||||
@ -21671,12 +21770,6 @@ B00000-BFFFFF (base 16) Beijing ThinRedline Technology Co.,Ltd.
|
||||
Beijing Beijing 100015
|
||||
CN
|
||||
|
||||
88-A6-EF (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
C00000-CFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
D0-15-BB (hex) Beijing Guangshu Zhiying Technology Development Co., Ltd.
|
||||
200000-2FFFFF (base 16) Beijing Guangshu Zhiying Technology Development Co., Ltd.
|
||||
Room910,Environment Building,16 Guangqumen Inner Street,Dongcheng District
|
||||
@ -22658,12 +22751,6 @@ DC-36-43 (hex) Hefei EA Excelsior Information Security Co., Ltd.
|
||||
Shenzhen 518000
|
||||
CN
|
||||
|
||||
04-EE-E8 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
DC-36-43 (hex) Hangzhou Chingan Tech Co., Ltd.
|
||||
500000-5FFFFF (base 16) Hangzhou Chingan Tech Co., Ltd.
|
||||
4F, BLDG. 4, 16# XIYUAN YI ROAD HANGZHOU, ZHEJIANG,CHINA 310030
|
||||
@ -24086,12 +24173,6 @@ D00000-DFFFFF (base 16) OMNISENSE SYSTEMS PRIVATE LIMITED TAIWAN BRANCH
|
||||
Budakalasz 2011
|
||||
HU
|
||||
|
||||
54-A4-93 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
400000-4FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
54-A4-93 (hex) ShenZhen Smart&Aspiration Co.,LTD
|
||||
100000-1FFFFF (base 16) ShenZhen Smart&Aspiration Co.,LTD
|
||||
Guanlan
|
||||
@ -28055,12 +28136,6 @@ C0-48-2F (hex) Chengdu Dingfeng Huizhi Technology Co., Ltd
|
||||
Chengdu Sichuan 610213
|
||||
CN
|
||||
|
||||
C0-48-2F (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
B00000-BFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
24-A3-F0 (hex) P4S
|
||||
E00000-EFFFFF (base 16) P4S
|
||||
27 bis rue des Plantes
|
||||
@ -28658,17 +28733,47 @@ B00000-BFFFFF (base 16) Combined Public Communications, LLC
|
||||
Guro-gu Seoul 08394
|
||||
KR
|
||||
|
||||
50-FA-CB (hex) Vortex Infotech Private Limited
|
||||
D00000-DFFFFF (base 16) Vortex Infotech Private Limited
|
||||
101, Corporate Arena, Sitaram Patkar Marg, Behind Mahindra Eminente Society, Goregaon west.
|
||||
Mumbai Maharashtra 400104
|
||||
IN
|
||||
|
||||
54-A4-93 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
400000-4FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
04-EE-E8 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
700000-7FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
50-FA-CB (hex) 1208815047
|
||||
600000-6FFFFF (base 16) 1208815047
|
||||
5F, 547, SAMSEONG-RO, GANGNAM-GU,SEOUL, SOUTH KOREA
|
||||
seoul 06156
|
||||
KR
|
||||
|
||||
50-FA-CB (hex) Vortex Infotech Private Limited
|
||||
D00000-DFFFFF (base 16) Vortex Infotech Private Limited
|
||||
101, Corporate Arena, Sitaram Patkar Marg, Behind Mahindra Eminente Society, Goregaon west.
|
||||
Mumbai Maharashtra 400104
|
||||
IN
|
||||
24-A1-0D (hex) Amina Distribution AS
|
||||
D00000-DFFFFF (base 16) Amina Distribution AS
|
||||
Strandsvingen 14A
|
||||
Stavanger 4032
|
||||
NO
|
||||
|
||||
88-A6-EF (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
C00000-CFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C0-48-2F (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
B00000-BFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C8-5C-E2 (hex) Fela Management AG
|
||||
000000-0FFFFF (base 16) Fela Management AG
|
||||
@ -29369,12 +29474,6 @@ D00000-DFFFFF (base 16) Jiangsu AIDriving Co.,Ltd.
|
||||
D0-96-86 (hex) Private
|
||||
700000-7FFFFF (base 16) Private
|
||||
|
||||
C4-98-94 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
700000-7FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C4-98-94 (hex) shenzhen lanodo technology Co., Ltd
|
||||
500000-5FFFFF (base 16) shenzhen lanodo technology Co., Ltd
|
||||
Room 501 Building D, Qiaoan Industry park, No 308 Wuhe Road, Guanlan, Longhua District
|
||||
@ -29429,12 +29528,6 @@ A00000-AFFFFF (base 16) VIE STYLE,INC,
|
||||
Xiamen Fujian 361100
|
||||
CN
|
||||
|
||||
58-47-CA (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
600000-6FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
58-47-CA (hex) Kingnuo Intelligent Technology (Jiaxing) Co., Ltd.
|
||||
900000-9FFFFF (base 16) Kingnuo Intelligent Technology (Jiaxing) Co., Ltd.
|
||||
ROOM.1202,Yongyue Building, YOUCHEGANG TOWN?XIUZHOU DISTRICT
|
||||
@ -30227,12 +30320,6 @@ E00000-EFFFFF (base 16) Dongguan zhenxing electronic technology co.,limited
|
||||
DonggUAN 523768
|
||||
CN
|
||||
|
||||
78-13-05 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
900000-9FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
E8-78-29 (hex) Galcon
|
||||
200000-2FFFFF (base 16) Galcon
|
||||
Kfar Blum israel
|
||||
@ -35081,12 +35168,6 @@ EC-5B-CD (hex) Sfera Labs S.r.l.
|
||||
Rillieux-La-Pape FRANCE 69140
|
||||
FR
|
||||
|
||||
34-46-63 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
900000-9FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
34-46-63 (hex) Bluesoo Tech (HongKong) Co.,Limited
|
||||
800000-8FFFFF (base 16) Bluesoo Tech (HongKong) Co.,Limited
|
||||
Room 05, 28 / F, good view business centre, 2-16 Garden Street, Mong Kok, Kowloon, Hongkong.
|
||||
@ -35543,12 +35624,6 @@ D00000-DFFFFF (base 16) Annapurna labs
|
||||
Mail box 15123 Haifa 3508409
|
||||
IL
|
||||
|
||||
04-A1-6F (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
04-A1-6F (hex) Xiamen Akubela Innovation Technology CO., Ltd.
|
||||
400000-4FFFFF (base 16) Xiamen Akubela Innovation Technology CO., Ltd.
|
||||
9/F, No.56 Guanri Road, Software Park II, Xiamen 361009, China
|
||||
@ -35633,12 +35708,6 @@ DC-76-C3 (hex) Bangyan Technology Co., Ltd
|
||||
Shenzhen Guangdong 518100
|
||||
CN
|
||||
|
||||
DC-76-C3 (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
300000-3FFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
C0-83-59 (hex) UNA Digital Inc.
|
||||
400000-4FFFFF (base 16) UNA Digital Inc.
|
||||
5F, 41-20, Burim-ro 170beon-gil
|
||||
@ -35837,12 +35906,6 @@ FC-E4-98 (hex) E Haute Intelligent Technology Co., Ltd
|
||||
shanwei guangdong 516600
|
||||
CN
|
||||
|
||||
E0-23-3B (hex) Shenzhen C & D Electronics Co., Ltd.
|
||||
B00000-BFFFFF (base 16) Shenzhen C & D Electronics Co., Ltd.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
48-08-EB (hex) Guangdong Three Link Technology Co., Ltd
|
||||
200000-2FFFFF (base 16) Guangdong Three Link Technology Co., Ltd
|
||||
3 floor, A1 Building, No. 75 Jianshe Road, Nankeng Village, Qishi Town
|
||||
@ -35890,3 +35953,75 @@ A00000-AFFFFF (base 16) AUO DISPLAY PLUS CORPORATION
|
||||
No. 1, Gongye E. 3rd Rd., East Dist., Hsinchu Science Park
|
||||
Hsinchu Taiwan 30075
|
||||
TW
|
||||
|
||||
9C-E4-50 (hex) Shenzhen Chengzhao Technology Co., Ltd.
|
||||
000000-0FFFFF (base 16) Shenzhen Chengzhao Technology Co., Ltd.
|
||||
Building A, No. 13 Huayin Road, Hualang Community, Dalang Subdistrict, Longhua District
|
||||
Shenzhen Guangdong 518000
|
||||
CN
|
||||
|
||||
C4-98-94 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
700000-7FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
34-46-63 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
900000-9FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
04-A1-6F (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
000000-0FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
78-13-05 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
900000-9FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
58-47-CA (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
600000-6FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
DC-76-C3 (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
300000-3FFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
E0-23-3B (hex) Shanghai Kanghai Information System CO.,LTD.
|
||||
B00000-BFFFFF (base 16) Shanghai Kanghai Information System CO.,LTD.
|
||||
9th FIoor, Building 9, No.1 Qingxiang road, BaoNeng Science and TechnoIogy Industrial Park, Longhua New District
|
||||
ShenZhen GuangDong 518000
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) Avantel Limited
|
||||
500000-5FFFFF (base 16) Avantel Limited
|
||||
Plot No. S-119M, E-CITYMaheshwaram Mandal, Raviryal, Rangareddy
|
||||
HYDERABAD Telangana 501510
|
||||
IN
|
||||
|
||||
24-A1-0D (hex) Rhymebus corporation
|
||||
300000-3FFFFF (base 16) Rhymebus corporation
|
||||
No. 17, 33rd Road, Taichung Industrial Park
|
||||
Taichung 40768
|
||||
TW
|
||||
|
||||
24-A1-0D (hex) Dongguan Taijie Electronics Technology Co.,Ltd
|
||||
400000-4FFFFF (base 16) Dongguan Taijie Electronics Technology Co.,Ltd
|
||||
5F, 6# Building, Sanjia Industrial Park, Dongkeng Town
|
||||
Dongguan Guangdong 523000
|
||||
CN
|
||||
|
||||
24-A1-0D (hex) Luxvisions lnnovation TechnologyCorp.Limited
|
||||
800000-8FFFFF (base 16) Luxvisions lnnovation TechnologyCorp.Limited
|
||||
No. 69, Yongsheng Road, Huangpu District, Guangzhou
|
||||
Guangzhou Guangdong Province 510000
|
||||
CN
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,8 +9,8 @@
|
||||
# The latest version can be obtained from
|
||||
# http://www.linux-usb.org/usb.ids
|
||||
#
|
||||
# Version: 2025.07.26
|
||||
# Date: 2025-07-26 20:34:01
|
||||
# Version: 2025.09.15
|
||||
# Date: 2025-09-15 20:34:02
|
||||
#
|
||||
|
||||
# Vendors, devices and interfaces. Please keep sorted.
|
||||
@ -13488,7 +13488,9 @@
|
||||
0b0d ProjectLab
|
||||
0000 CenturyCD
|
||||
0b0e GN Netcom
|
||||
0301 Jabra EVOLVE 20
|
||||
0305 Jabra EVOLVE Link MS
|
||||
030c Jabra EVOLVE 65
|
||||
0311 Jabra EVOLVE 65
|
||||
0312 enc060:Buttons Volume up/down/mute + phone [Jabra]
|
||||
0343 Jabra UC VOICE 150a
|
||||
@ -13507,6 +13509,11 @@
|
||||
2007 GN 2000 Stereo Corded Headset
|
||||
2456 Jabra SPEAK 810
|
||||
245e Jabra Link 370
|
||||
248a Jabra Elite 85h
|
||||
24b8 Jabra Evolve2 65
|
||||
24bb Jabra Evolve2 85
|
||||
24c9 Jabra Link 380
|
||||
24ca Jabra Link 380
|
||||
620c Jabra BT620s
|
||||
9330 Jabra GN9330 Headset
|
||||
a346 Jabra Engage 75 Stereo
|
||||
|
@ -1138,6 +1138,7 @@ manpages = [
|
||||
'systemd-sysext-initrd.service',
|
||||
'systemd-sysext.service'],
|
||||
'ENABLE_SYSEXT'],
|
||||
['sysext.conf', '5', ['confext.conf'], 'ENABLE_SYSEXT'],
|
||||
['systemd-system-update-generator', '8', [], ''],
|
||||
['systemd-system.conf',
|
||||
'5',
|
||||
|
101
man/sysext.conf.xml
Normal file
101
man/sysext.conf.xml
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version='1.0'?> <!--*-nxml-*-->
|
||||
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
|
||||
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
||||
|
||||
<refentry id="sysext.conf" conditional='ENABLE_SYSEXT'
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||
|
||||
<refentryinfo>
|
||||
<title>sysext.conf</title>
|
||||
<productname>systemd</productname>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
<refentrytitle>sysext.conf</refentrytitle>
|
||||
<manvolnum>5</manvolnum>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>sysext.conf</refname>
|
||||
<refname>confext.conf</refname>
|
||||
<refname>sysext.conf.d</refname>
|
||||
<refname>confext.conf.d</refname>
|
||||
<refpurpose>Configuration files for systemd-sysext</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
<refsynopsisdiv>
|
||||
<para><filename>/etc/systemd/sysext.conf</filename></para>
|
||||
<para><filename>/etc/systemd/sysext.conf.d/*.conf</filename></para>
|
||||
<para><filename>/run/systemd/sysext.conf</filename></para>
|
||||
<para><filename>/run/systemd/sysext.conf.d/*.conf</filename></para>
|
||||
<para><filename>/usr/lib/systemd/sysext.conf</filename></para>
|
||||
<para><filename>/usr/lib/systemd/sysext.conf.d/*.conf</filename></para>
|
||||
<para><filename>/etc/systemd/confext.conf</filename></para>
|
||||
<para><filename>/etc/systemd/confext.conf.d/*.conf</filename></para>
|
||||
<para><filename>/run/systemd/confext.conf</filename></para>
|
||||
<para><filename>/run/systemd/confext.conf.d/*.conf</filename></para>
|
||||
<para><filename>/usr/lib/systemd/confext.conf</filename></para>
|
||||
<para><filename>/usr/lib/systemd/confext.conf.d/*.conf</filename></para>
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1>
|
||||
<title>Description</title>
|
||||
|
||||
<para>These configuration files control the behavior of
|
||||
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry> and
|
||||
<citerefentry><refentrytitle>systemd-confext</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
They are especially useful when needing to customize the behavior of the
|
||||
respective extension service units.</para>
|
||||
</refsect1>
|
||||
|
||||
<xi:include href="standard-conf.xml" xpointer="main-conf" />
|
||||
|
||||
<refsect1>
|
||||
<title>Options</title>
|
||||
|
||||
<para>The following options are understood in both the <literal>[Sysext]</literal> and
|
||||
<literal>[Confext]</literal> sections:</para>
|
||||
|
||||
<refsect2>
|
||||
<title>Section Options</title>
|
||||
|
||||
<variablelist class='config-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>Mutable=</varname></term>
|
||||
<listitem><para>Set the mutable mode for system extensions. Takes one of <literal>no</literal>,
|
||||
<literal>yes</literal>, <literal>auto</literal>, <literal>import</literal>,
|
||||
<literal>ephemeral</literal>, or <literal>ephemeral-import</literal>. For details about the modes,
|
||||
see the <option>--mutable=</option> option in
|
||||
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
Defaults to <literal>no</literal>.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v259"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ImagePolicy=</varname></term>
|
||||
<listitem><para>Set the image policy. Takes an image policy string as argument, as per
|
||||
<citerefentry><refentrytitle>systemd.image-policy</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
|
||||
For details, see the <option>--image-policy=</option> option in
|
||||
<citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
|
||||
</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v259"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>See Also</title>
|
||||
<para><simplelist type="inline">
|
||||
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-sysext</refentrytitle><manvolnum>8</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd.syntax</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
|
||||
</simplelist></para>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
@ -74,7 +74,12 @@
|
||||
<para>System extension images are strictly read-only by default. On mutable host file systems,
|
||||
<filename>/usr/</filename> and <filename>/opt/</filename> hierarchies become read-only while extensions
|
||||
are merged, unless mutability is enabled. Mutability may be enabled via the <option>--mutable=</option>
|
||||
option; see "Mutability" below for more information.</para>
|
||||
option and the <varname>Mutable=</varname> option in the configuration file;
|
||||
see "Mutability" below for more information.</para>
|
||||
|
||||
<para>Various command options can be configured globally via configuration files. See
|
||||
<citerefentry><refentrytitle>sysext.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for details.</para>
|
||||
|
||||
<para>System extensions are supposed to be purely additive, i.e. they are supposed to include only files
|
||||
that do not exist in the underlying basic OS image. However, the underlying mechanism (overlayfs) also
|
||||
@ -477,6 +482,7 @@
|
||||
<title>See Also</title>
|
||||
<para><simplelist type="inline">
|
||||
<member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>sysext.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>systemd-stub</refentrytitle><manvolnum>7</manvolnum></citerefentry></member>
|
||||
<member><citerefentry><refentrytitle>importctl</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
|
||||
|
@ -585,6 +585,26 @@
|
||||
<xi:include href="version-info.xml" xpointer="v226"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NamespacePath=</varname></term>
|
||||
|
||||
<listitem><para>Takes the path to a file representing a kernel
|
||||
network namespace that the container shall run in. The specified path
|
||||
should refer to a (possibly bind-mounted) network namespace file, as
|
||||
exposed by the kernel below <filename>/proc/$PID/ns/net</filename>.
|
||||
This makes the container enter the given network namespace. One of the
|
||||
typical use cases is to give a network namespace under
|
||||
<filename>/run/netns</filename> created by <citerefentry
|
||||
project='man-pages'><refentrytitle>ip-netns</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
|
||||
for example, <varname>NamespacePath=/run/netns/foo</varname>.
|
||||
Note that this option cannot be used together with other
|
||||
network-related options, such as <varname>Private=</varname>
|
||||
or <varname>Interface=</varname>. This option corresponds to the
|
||||
<option>--network-namespace-path</option> command line switch.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v259"/></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>VirtualEthernet=</varname></term>
|
||||
|
||||
|
@ -635,6 +635,9 @@ progs = [['quotaon', '/usr/sbin/quotaon' ],
|
||||
['kmod', '/usr/bin/kmod' ],
|
||||
['kexec', '/usr/sbin/kexec' ],
|
||||
['sulogin', '/usr/sbin/sulogin' ],
|
||||
['swapon', '/usr/sbin/swapon' ],
|
||||
['swapoff', '/usr/sbin/swapoff' ],
|
||||
['agetty', '/usr/sbin/agetty' ],
|
||||
['mount', '/usr/bin/mount', 'MOUNT_PATH'],
|
||||
['umount', '/usr/bin/umount', 'UMOUNT_PATH'],
|
||||
['loadkeys', '/usr/bin/loadkeys', 'KBD_LOADKEYS'],
|
||||
|
@ -1 +1 @@
|
||||
258~rc4
|
||||
259~devel
|
||||
|
@ -57,6 +57,9 @@ option('quotacheck-path', type : 'string', description : 'path to quotacheck')
|
||||
option('kmod-path', type : 'string', description : 'path to kmod')
|
||||
option('kexec-path', type : 'string', description : 'path to kexec')
|
||||
option('sulogin-path', type : 'string', description : 'path to sulogin')
|
||||
option('swapon-path', type : 'string', description : 'path to swapon')
|
||||
option('swapoff-path', type : 'string', description : 'path to swapoff')
|
||||
option('agetty-path', type : 'string', description : 'path to agetty')
|
||||
option('mount-path', type : 'string', description : 'path to mount')
|
||||
option('umount-path', type : 'string', description : 'path to umount')
|
||||
option('loadkeys-path', type : 'string', description : 'path to loadkeys')
|
||||
|
@ -248,7 +248,7 @@ int get_max_fd(void) {
|
||||
return (int) (m - 1);
|
||||
}
|
||||
|
||||
static int close_all_fds_frugal(const int except[], size_t n_except) {
|
||||
int close_all_fds_frugal(const int except[], size_t n_except) {
|
||||
int max_fd, r = 0;
|
||||
|
||||
assert(except || n_except == 0);
|
||||
@ -282,6 +282,42 @@ static int close_all_fds_frugal(const int except[], size_t n_except) {
|
||||
return r;
|
||||
}
|
||||
|
||||
int close_all_fds_by_proc(const int except[], size_t n_except) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
int r = 0;
|
||||
|
||||
d = opendir("/proc/self/fd");
|
||||
if (!d)
|
||||
return close_all_fds_frugal(except, n_except); /* ultimate fallback if /proc/ is not available */
|
||||
|
||||
FOREACH_DIRENT(de, d, return -errno) {
|
||||
int fd = -EBADF, q;
|
||||
|
||||
if (!IN_SET(de->d_type, DT_LNK, DT_UNKNOWN))
|
||||
continue;
|
||||
|
||||
fd = parse_fd(de->d_name);
|
||||
if (fd < 0)
|
||||
/* Let's better ignore this, just in case */
|
||||
continue;
|
||||
|
||||
if (fd < 3)
|
||||
continue;
|
||||
|
||||
if (fd == dirfd(d))
|
||||
continue;
|
||||
|
||||
if (fd_in_set(fd, except, n_except))
|
||||
continue;
|
||||
|
||||
q = close_nointr(fd);
|
||||
if (q != -EBADF) /* Valgrind has its own FD and doesn't want to have it closed */
|
||||
RET_GATHER(r, q);
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
static bool have_close_range = true; /* Assume we live in the future */
|
||||
|
||||
static int close_all_fds_special_case(const int except[], size_t n_except) {
|
||||
@ -348,8 +384,7 @@ int close_all_fds_without_malloc(const int except[], size_t n_except) {
|
||||
}
|
||||
|
||||
int close_all_fds(const int except[], size_t n_except) {
|
||||
_cleanup_closedir_ DIR *d = NULL;
|
||||
int r = 0;
|
||||
int r;
|
||||
|
||||
assert(n_except == 0 || except);
|
||||
|
||||
@ -359,104 +394,73 @@ int close_all_fds(const int except[], size_t n_except) {
|
||||
if (r > 0) /* special case worked! */
|
||||
return 0;
|
||||
|
||||
if (have_close_range) {
|
||||
_cleanup_free_ int *sorted_malloc = NULL;
|
||||
size_t n_sorted;
|
||||
int *sorted;
|
||||
if (!have_close_range)
|
||||
return close_all_fds_by_proc(except, n_except);
|
||||
|
||||
/* In the best case we have close_range() to close all fds between a start and an end fd,
|
||||
* which we can use on the "inverted" exception array, i.e. all intervals between all
|
||||
* adjacent pairs from the sorted exception array. This changes loop complexity from O(n)
|
||||
* where n is number of open fds to O(m⋅log(m)) where m is the number of fds to keep
|
||||
* open. Given that we assume n ≫ m that's preferable to us. */
|
||||
_cleanup_free_ int *sorted_malloc = NULL;
|
||||
size_t n_sorted;
|
||||
int *sorted;
|
||||
|
||||
assert(n_except < SIZE_MAX);
|
||||
n_sorted = n_except + 1;
|
||||
/* In the best case we have close_range() to close all fds between a start and an end fd, which we
|
||||
* can use on the "inverted" exception array, i.e. all intervals between all adjacent pairs from the
|
||||
* sorted exception array. This changes loop complexity from O(n) where n is number of open fds to
|
||||
* O(m⋅log(m)) where m is the number of fds to keep open. Given that we assume n ≫ m that's
|
||||
* preferable to us. */
|
||||
|
||||
if (n_sorted > 64) /* Use heap for large numbers of fds, stack otherwise */
|
||||
sorted = sorted_malloc = new(int, n_sorted);
|
||||
else
|
||||
sorted = newa(int, n_sorted);
|
||||
assert(n_except < SIZE_MAX);
|
||||
n_sorted = n_except + 1;
|
||||
|
||||
if (sorted) {
|
||||
memcpy(sorted, except, n_except * sizeof(int));
|
||||
if (n_sorted > ALLOCA_MAX / sizeof(int)) /* Use heap for large numbers of fds, stack otherwise */
|
||||
sorted = sorted_malloc = new(int, n_sorted);
|
||||
else
|
||||
sorted = newa(int, n_sorted);
|
||||
|
||||
/* Let's add fd 2 to the list of fds, to simplify the loop below, as this
|
||||
* allows us to cover the head of the array the same way as the body */
|
||||
sorted[n_sorted-1] = 2;
|
||||
if (!sorted) /* Fallback on OOM. */
|
||||
return close_all_fds_by_proc(except, n_except);
|
||||
|
||||
typesafe_qsort(sorted, n_sorted, cmp_int);
|
||||
memcpy(sorted, except, n_except * sizeof(int));
|
||||
|
||||
for (size_t i = 0; i < n_sorted-1; i++) {
|
||||
int start, end;
|
||||
/* Let's add fd 2 to the list of fds, to simplify the loop below, as this
|
||||
* allows us to cover the head of the array the same way as the body */
|
||||
sorted[n_sorted-1] = 2;
|
||||
|
||||
start = MAX(sorted[i], 2); /* The first three fds shall always remain open */
|
||||
end = MAX(sorted[i+1], 2);
|
||||
typesafe_qsort(sorted, n_sorted, cmp_int);
|
||||
|
||||
assert(end >= start);
|
||||
for (size_t i = 0; i < n_sorted-1; i++) {
|
||||
int start, end;
|
||||
|
||||
if (end - start <= 1)
|
||||
continue;
|
||||
start = MAX(sorted[i], 2); /* The first three fds shall always remain open */
|
||||
end = MAX(sorted[i+1], 2);
|
||||
|
||||
/* Close everything between the start and end fds (both of which shall stay open) */
|
||||
if (close_range(start + 1, end - 1, 0) < 0) {
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && !ERRNO_IS_PRIVILEGE(errno))
|
||||
return -errno;
|
||||
assert(end >= start);
|
||||
|
||||
have_close_range = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (end - start <= 1)
|
||||
continue;
|
||||
|
||||
if (have_close_range) {
|
||||
/* The loop succeeded. Let's now close everything beyond the end */
|
||||
/* Close everything between the start and end fds (both of which shall stay open) */
|
||||
if (close_range(start + 1, end - 1, 0) < 0) {
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && !ERRNO_IS_PRIVILEGE(errno))
|
||||
return -errno;
|
||||
|
||||
if (sorted[n_sorted-1] >= INT_MAX) /* Dont let the addition below overflow */
|
||||
return 0;
|
||||
|
||||
if (close_range(sorted[n_sorted-1] + 1, INT_MAX, 0) >= 0)
|
||||
return 0;
|
||||
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && !ERRNO_IS_PRIVILEGE(errno))
|
||||
return -errno;
|
||||
|
||||
have_close_range = false;
|
||||
}
|
||||
have_close_range = false;
|
||||
return close_all_fds_by_proc(except, n_except);
|
||||
}
|
||||
|
||||
/* Fallback on OOM or if close_range() is not supported */
|
||||
}
|
||||
|
||||
d = opendir("/proc/self/fd");
|
||||
if (!d)
|
||||
return close_all_fds_frugal(except, n_except); /* ultimate fallback if /proc/ is not available */
|
||||
/* The loop succeeded. Let's now close everything beyond the end */
|
||||
|
||||
FOREACH_DIRENT(de, d, return -errno) {
|
||||
int fd = -EBADF, q;
|
||||
if (sorted[n_sorted-1] >= INT_MAX) /* Dont let the addition below overflow */
|
||||
return 0;
|
||||
|
||||
if (!IN_SET(de->d_type, DT_LNK, DT_UNKNOWN))
|
||||
continue;
|
||||
if (close_range(sorted[n_sorted-1] + 1, INT_MAX, 0) < 0) {
|
||||
if (!ERRNO_IS_NOT_SUPPORTED(errno) && !ERRNO_IS_PRIVILEGE(errno))
|
||||
return -errno;
|
||||
|
||||
fd = parse_fd(de->d_name);
|
||||
if (fd < 0)
|
||||
/* Let's better ignore this, just in case */
|
||||
continue;
|
||||
|
||||
if (fd < 3)
|
||||
continue;
|
||||
|
||||
if (fd == dirfd(d))
|
||||
continue;
|
||||
|
||||
if (fd_in_set(fd, except, n_except))
|
||||
continue;
|
||||
|
||||
q = close_nointr(fd);
|
||||
if (q < 0 && q != -EBADF && r >= 0) /* Valgrind has its own FD and doesn't want to have it closed */
|
||||
r = q;
|
||||
have_close_range = false;
|
||||
return close_all_fds_by_proc(except, n_except);
|
||||
}
|
||||
|
||||
return r;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int pack_fds(int fds[], size_t n_fds) {
|
||||
@ -1035,10 +1039,9 @@ int fd_get_diskseq(int fd, uint64_t *ret) {
|
||||
}
|
||||
|
||||
int path_is_root_at(int dir_fd, const char *path) {
|
||||
_cleanup_close_ int fd = -EBADF, pfd = -EBADF;
|
||||
|
||||
assert(dir_fd >= 0 || dir_fd == AT_FDCWD);
|
||||
|
||||
_cleanup_close_ int fd = -EBADF;
|
||||
if (!isempty(path)) {
|
||||
fd = openat(dir_fd, path, O_PATH|O_DIRECTORY|O_CLOEXEC);
|
||||
if (fd < 0)
|
||||
@ -1047,19 +1050,19 @@ int path_is_root_at(int dir_fd, const char *path) {
|
||||
dir_fd = fd;
|
||||
}
|
||||
|
||||
pfd = openat(dir_fd, "..", O_PATH|O_DIRECTORY|O_CLOEXEC);
|
||||
if (pfd < 0)
|
||||
return errno == ENOTDIR ? false : -errno;
|
||||
_cleanup_close_ int root_fd = openat(AT_FDCWD, "/", O_PATH|O_DIRECTORY|O_CLOEXEC);
|
||||
if (root_fd < 0)
|
||||
return -errno;
|
||||
|
||||
/* Even if the parent directory has the same inode, the fd may not point to the root directory "/",
|
||||
* and we also need to check that the mount ids are the same. Otherwise, a construct like the
|
||||
* following could be used to trick us:
|
||||
/* Even if the root directory has the same inode as our fd, the fd may not point to the root
|
||||
* directory "/", and we also need to check that the mount ids are the same. Otherwise, a construct
|
||||
* like the following could be used to trick us:
|
||||
*
|
||||
* $ mkdir /tmp/x /tmp/x/y
|
||||
* $ mount --bind /tmp/x /tmp/x/y
|
||||
* $ mkdir /tmp/x
|
||||
* $ mount --bind / /tmp/x
|
||||
*/
|
||||
|
||||
return fds_are_same_mount(dir_fd, pfd);
|
||||
return fds_are_same_mount(dir_fd, root_fd);
|
||||
}
|
||||
|
||||
int fds_are_same_mount(int fd1, int fd2) {
|
||||
|
@ -112,6 +112,8 @@ int get_max_fd(void);
|
||||
|
||||
int close_all_fds(const int except[], size_t n_except);
|
||||
int close_all_fds_without_malloc(const int except[], size_t n_except);
|
||||
int close_all_fds_by_proc(const int except[], size_t n_except);
|
||||
int close_all_fds_frugal(const int except[], size_t n_except);
|
||||
|
||||
int pack_fds(int fds[], size_t n);
|
||||
|
||||
|
@ -116,7 +116,7 @@ typedef struct BootEntry {
|
||||
EFI_STATUS (*call)(const struct BootEntry *entry, EFI_FILE *root_dir, EFI_HANDLE parent_image);
|
||||
int tries_done;
|
||||
int tries_left;
|
||||
char16_t *path;
|
||||
char16_t *directory;
|
||||
char16_t *current_name;
|
||||
char16_t *next_name;
|
||||
unsigned profile;
|
||||
@ -409,8 +409,8 @@ static void print_status(Config *config, char16_t *loaded_image_path) {
|
||||
printf("counting boots: %ls\n", yes_no(entry->tries_left >= 0));
|
||||
if (entry->tries_left >= 0) {
|
||||
printf(" tries: %i left, %i done\n", entry->tries_left, entry->tries_done);
|
||||
printf(" current path: %ls\\%ls\n", entry->path, entry->current_name);
|
||||
printf(" next path: %ls\\%ls\n", entry->path, entry->next_name);
|
||||
printf(" current path: %ls\\%ls\n", entry->directory, entry->current_name);
|
||||
printf(" next path: %ls\\%ls\n", entry->directory, entry->next_name);
|
||||
}
|
||||
|
||||
if (!ps_continue())
|
||||
@ -991,7 +991,7 @@ static BootEntry* boot_entry_free(BootEntry *entry) {
|
||||
free(entry->devicetree);
|
||||
free(entry->options);
|
||||
strv_free(entry->initrd);
|
||||
free(entry->path);
|
||||
free(entry->directory);
|
||||
free(entry->current_name);
|
||||
free(entry->next_name);
|
||||
|
||||
@ -1116,12 +1116,12 @@ static void config_defaults_load_from_file(Config *config, char *content) {
|
||||
|
||||
static void boot_entry_parse_tries(
|
||||
BootEntry *entry,
|
||||
const char16_t *path,
|
||||
const char16_t *directory,
|
||||
const char16_t *file,
|
||||
const char16_t *suffix) {
|
||||
|
||||
assert(entry);
|
||||
assert(path);
|
||||
assert(directory);
|
||||
assert(file);
|
||||
assert(suffix);
|
||||
|
||||
@ -1167,7 +1167,7 @@ static void boot_entry_parse_tries(
|
||||
|
||||
entry->tries_left = tries_left;
|
||||
entry->tries_done = tries_done;
|
||||
entry->path = xstrdup16(path);
|
||||
entry->directory = xstrdup16(directory);
|
||||
entry->current_name = xstrdup16(file);
|
||||
entry->next_name = xasprintf(
|
||||
"%.*ls%" PRIu64 "-%" PRIu64 "%ls",
|
||||
@ -1193,7 +1193,7 @@ static EFI_STATUS boot_entry_bump_counters(BootEntry *entry) {
|
||||
if (entry->tries_left < 0)
|
||||
return EFI_SUCCESS;
|
||||
|
||||
if (!entry->path || !entry->current_name || !entry->next_name)
|
||||
if (!entry->directory || !entry->current_name || !entry->next_name)
|
||||
return EFI_SUCCESS;
|
||||
|
||||
_cleanup_file_close_ EFI_FILE *root = NULL;
|
||||
@ -1201,7 +1201,7 @@ static EFI_STATUS boot_entry_bump_counters(BootEntry *entry) {
|
||||
if (err != EFI_SUCCESS)
|
||||
return log_error_status(err, "Error opening entry root path: %m");
|
||||
|
||||
old_path = xasprintf("%ls\\%ls", entry->path, entry->current_name);
|
||||
old_path = xasprintf("%ls\\%ls", entry->directory, entry->current_name);
|
||||
|
||||
err = root->Open(root, &handle, old_path, EFI_FILE_MODE_READ|EFI_FILE_MODE_WRITE, 0ULL);
|
||||
if (err != EFI_SUCCESS)
|
||||
@ -1225,7 +1225,7 @@ static EFI_STATUS boot_entry_bump_counters(BootEntry *entry) {
|
||||
|
||||
/* Let's tell the OS that we renamed this file, so that it knows what to rename to the counter-less name on
|
||||
* success */
|
||||
new_path = xasprintf("%ls\\%ls", entry->path, entry->next_name);
|
||||
new_path = xasprintf("%ls\\%ls", entry->directory, entry->next_name);
|
||||
efivar_set_str16(MAKE_GUID_PTR(LOADER), u"LoaderBootCountPath", new_path, 0);
|
||||
|
||||
/* If the file we just renamed is the loader path, then let's update that. */
|
||||
@ -2769,7 +2769,7 @@ static void save_selected_entry(const Config *config, const BootEntry *entry) {
|
||||
static EFI_STATUS call_secure_boot_enroll(const BootEntry *entry, EFI_FILE *root_dir, EFI_HANDLE parent_image) {
|
||||
assert(entry);
|
||||
|
||||
return secure_boot_enroll_at(root_dir, entry->path, /* force= */ true, /* action= */ ENROLL_ACTION_REBOOT);
|
||||
return secure_boot_enroll_at(root_dir, entry->directory, /* force= */ true, /* action= */ ENROLL_ACTION_REBOOT);
|
||||
}
|
||||
|
||||
static EFI_STATUS secure_boot_discover_keys(Config *config, EFI_FILE *root_dir) {
|
||||
@ -2808,7 +2808,7 @@ static EFI_STATUS secure_boot_discover_keys(Config *config, EFI_FILE *root_dir)
|
||||
*entry = (BootEntry) {
|
||||
.id = xasprintf("secure-boot-keys-%ls", dirent->FileName),
|
||||
.title = xasprintf("Enroll Secure Boot keys: %ls", dirent->FileName),
|
||||
.path = xasprintf("\\loader\\keys\\%ls", dirent->FileName),
|
||||
.directory = xasprintf("\\loader\\keys\\%ls", dirent->FileName),
|
||||
.type = LOADER_SECURE_BOOT_KEYS,
|
||||
.tries_done = -1,
|
||||
.tries_left = -1,
|
||||
@ -2820,7 +2820,7 @@ static EFI_STATUS secure_boot_discover_keys(Config *config, EFI_FILE *root_dir)
|
||||
strcaseeq16(dirent->FileName, u"auto"))
|
||||
/* If we auto enroll successfully this call does not return.
|
||||
* If it fails we still want to add other potential entries to the menu. */
|
||||
secure_boot_enroll_at(root_dir, entry->path, config->secure_boot_enroll == ENROLL_FORCE, config->secure_boot_enroll_action);
|
||||
secure_boot_enroll_at(root_dir, entry->directory, config->secure_boot_enroll == ENROLL_FORCE, config->secure_boot_enroll_action);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
@ -46,10 +46,16 @@ static inline void *xmalloc_multiply(size_t n, size_t size) {
|
||||
/* Use malloc attribute as this never returns p like userspace realloc. */
|
||||
_malloc_ _alloc_(3) _returns_nonnull_ _warn_unused_result_
|
||||
static inline void *xrealloc(void *p, size_t old_size, size_t new_size) {
|
||||
assert(p || old_size == 0);
|
||||
|
||||
void *t = xmalloc(new_size);
|
||||
new_size = MIN(old_size, new_size);
|
||||
if (new_size > 0)
|
||||
memcpy(t, p, new_size);
|
||||
|
||||
size_t size = MIN(old_size, new_size);
|
||||
if (size > 0) {
|
||||
assert(p);
|
||||
memcpy(t, p, size);
|
||||
}
|
||||
|
||||
free(p);
|
||||
return t;
|
||||
}
|
||||
|
@ -929,10 +929,6 @@ int verb_list(int argc, char *argv[], void *userdata) {
|
||||
}
|
||||
}
|
||||
|
||||
int verb_unlink(int argc, char *argv[], void *userdata) {
|
||||
return verb_list(argc, argv, userdata);
|
||||
}
|
||||
|
||||
int vl_method_list_boot_entries(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata) {
|
||||
_cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
|
||||
dev_t esp_devid = 0, xbootldr_devid = 0;
|
||||
|
@ -4,6 +4,5 @@
|
||||
|
||||
int verb_status(int argc, char *argv[], void *userdata);
|
||||
int verb_list(int argc, char *argv[], void *userdata);
|
||||
int verb_unlink(int argc, char *argv[], void *userdata);
|
||||
|
||||
int vl_method_list_boot_entries(sd_varlink *link, sd_json_variant *parameters, sd_varlink_method_flags_t flags, void *userdata);
|
||||
|
@ -682,7 +682,7 @@ static int bootctl_main(int argc, char *argv[]) {
|
||||
{ "kernel-identify", 2, 2, 0, verb_kernel_identify },
|
||||
{ "kernel-inspect", 2, 2, 0, verb_kernel_inspect },
|
||||
{ "list", VERB_ANY, 1, 0, verb_list },
|
||||
{ "unlink", 2, 2, 0, verb_unlink },
|
||||
{ "unlink", 2, 2, 0, verb_list },
|
||||
{ "cleanup", VERB_ANY, 1, 0, verb_list },
|
||||
{ "set-default", 2, 2, 0, verb_set_efivar },
|
||||
{ "set-oneshot", 2, 2, 0, verb_set_efivar },
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include "bpf-foreign.h"
|
||||
#include "bpf-program.h"
|
||||
#include "cgroup.h"
|
||||
#include "errno-util.h"
|
||||
#include "hash-funcs.h"
|
||||
#include "hashmap.h"
|
||||
#include "siphash24.h"
|
||||
@ -65,11 +66,8 @@ static int attach_programs(Unit *u, const char *path, Hashmap* foreign_by_key, u
|
||||
|
||||
HASHMAP_FOREACH_KEY(prog, key, foreign_by_key) {
|
||||
r = bpf_program_cgroup_attach(prog, key->attach_type, path, attach_flags);
|
||||
if (r < 0) {
|
||||
log_unit_error_errno(u, r, "bpf-foreign: Attaching foreign BPF program to cgroup %s failed: %m", path);
|
||||
if (ret >= 0)
|
||||
ret = r;
|
||||
}
|
||||
if (r < 0)
|
||||
RET_GATHER(ret, log_unit_error_errno(u, r, "bpf-foreign: Attaching foreign BPF program to cgroup %s failed: %m", path));
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -157,12 +155,8 @@ int bpf_foreign_install(Unit *u) {
|
||||
if (r < 0)
|
||||
return log_unit_error_errno(u, r, "bpf-foreign: Failed to get cgroup path: %m");
|
||||
|
||||
LIST_FOREACH(programs, p, cc->bpf_foreign_programs) {
|
||||
r = bpf_foreign_prepare(u, p->attach_type, p->bpffs_path);
|
||||
if (r < 0 && ret >= 0)
|
||||
ret = r;
|
||||
}
|
||||
LIST_FOREACH(programs, p, cc->bpf_foreign_programs)
|
||||
RET_GATHER(ret, bpf_foreign_prepare(u, p->attach_type, p->bpffs_path));
|
||||
|
||||
r = attach_programs(u, cgroup_path, crt->bpf_foreign_by_key, BPF_F_ALLOW_MULTI);
|
||||
return ret < 0 ? ret : r;
|
||||
return RET_GATHER(ret, attach_programs(u, cgroup_path, crt->bpf_foreign_by_key, BPF_F_ALLOW_MULTI));
|
||||
}
|
||||
|
@ -3953,6 +3953,7 @@ static int manager_run_environment_generators(Manager *m) {
|
||||
|
||||
WITH_UMASK(0022)
|
||||
r = execute_directories(
|
||||
"environment-generators",
|
||||
(const char* const*) paths,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
gather_environment,
|
||||
@ -4070,6 +4071,7 @@ static int manager_execute_generators(Manager *m, char * const *paths, bool remo
|
||||
|
||||
BLOCK_WITH_UMASK(0022);
|
||||
return execute_directories(
|
||||
"generators",
|
||||
(const char* const*) paths,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
/* callbacks= */ NULL, /* callback_args= */ NULL,
|
||||
|
@ -1621,16 +1621,11 @@ static int mount_image(
|
||||
const ImagePolicy *image_policy) {
|
||||
|
||||
_cleanup_(extension_release_data_done) ExtensionReleaseData rdata = {};
|
||||
_cleanup_free_ char *extension_name = NULL;
|
||||
ImageClass required_class = _IMAGE_CLASS_INVALID;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
|
||||
r = path_extract_filename(mount_entry_source(m), &extension_name);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to extract extension name from %s: %m", mount_entry_source(m));
|
||||
|
||||
if (m->mode == MOUNT_EXTENSION_IMAGE) {
|
||||
r = parse_os_release(
|
||||
empty_to_root(root_directory),
|
||||
|
@ -781,7 +781,7 @@ static void swap_enter_activating(Swap *s) {
|
||||
}
|
||||
}
|
||||
|
||||
r = exec_command_set(s->control_command, "/sbin/swapon", "--fixpgsz", NULL);
|
||||
r = exec_command_set(s->control_command, SWAPON, "--fixpgsz", NULL);
|
||||
if (r < 0) {
|
||||
log_unit_warning_errno(UNIT(s), r, "Failed to initialize swapon command line: %m");
|
||||
goto fail;
|
||||
@ -826,7 +826,7 @@ static void swap_enter_deactivating(Swap *s) {
|
||||
s->control_command = s->exec_command + SWAP_EXEC_DEACTIVATE;
|
||||
|
||||
r = exec_command_set(s->control_command,
|
||||
"/sbin/swapoff",
|
||||
SWAPOFF,
|
||||
s->what,
|
||||
NULL);
|
||||
if (r < 0) {
|
||||
|
@ -2411,10 +2411,20 @@ static int unit_log_resources(Unit *u) {
|
||||
iovec[n_iovec++] = IOVEC_MAKE_STRING(TAKE_PTR(t));
|
||||
|
||||
/* Format the CPU time for inclusion in the human language message string */
|
||||
if (strextendf_with_separator(&message, ", ",
|
||||
"Consumed %s CPU time",
|
||||
FORMAT_TIMESPAN(cpu_nsec / NSEC_PER_USEC, USEC_PER_MSEC)) < 0)
|
||||
return log_oom();
|
||||
if (dual_timestamp_is_set(&u->inactive_exit_timestamp) &&
|
||||
dual_timestamp_is_set(&u->inactive_enter_timestamp)) {
|
||||
usec_t wall_clock_usec = usec_sub_unsigned(u->inactive_enter_timestamp.monotonic, u->inactive_exit_timestamp.monotonic);
|
||||
if (strextendf_with_separator(&message, ", ",
|
||||
"Consumed %s CPU time over %s wall clock time",
|
||||
FORMAT_TIMESPAN(cpu_nsec / NSEC_PER_USEC, USEC_PER_MSEC),
|
||||
FORMAT_TIMESPAN(wall_clock_usec, USEC_PER_MSEC)) < 0)
|
||||
return log_oom();
|
||||
} else {
|
||||
if (strextendf_with_separator(&message, ", ",
|
||||
"Consumed %s CPU time",
|
||||
FORMAT_TIMESPAN(cpu_nsec / NSEC_PER_USEC, USEC_PER_MSEC)) < 0)
|
||||
return log_oom();
|
||||
}
|
||||
|
||||
log_level = raise_level(log_level,
|
||||
cpu_nsec > MENTIONWORTHY_CPU_NSEC,
|
||||
|
@ -126,17 +126,37 @@ void pull_job_curl_on_finished(CurlGlue *g, CURL *curl, CURLcode result) {
|
||||
if (!j || IN_SET(j->state, PULL_JOB_DONE, PULL_JOB_FAILED))
|
||||
return;
|
||||
|
||||
if (result != CURLE_OK) {
|
||||
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Transfer failed: %s", curl_easy_strerror(result));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
code = curl_easy_getinfo(curl, CURLINFO_SCHEME, &scheme);
|
||||
if (code != CURLE_OK || !scheme) {
|
||||
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Failed to retrieve URL scheme.");
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (strcaseeq(scheme, "FILE") && result == CURLE_FILE_COULDNT_READ_FILE && j->on_not_found) {
|
||||
_cleanup_free_ char *new_url = NULL;
|
||||
|
||||
/* This resource wasn't found, but the implementor wants to maybe let us know a new URL, query for it. */
|
||||
r = j->on_not_found(j, &new_url);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
if (r > 0) { /* A new url to use */
|
||||
assert(new_url);
|
||||
|
||||
r = pull_job_restart(j, new_url);
|
||||
if (r < 0)
|
||||
goto finish;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* if this didn't work, handle like any other error below */
|
||||
}
|
||||
|
||||
if (result != CURLE_OK) {
|
||||
r = log_error_errno(SYNTHETIC_ERRNO(EIO), "Transfer failed: %s", curl_easy_strerror(result));
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (STRCASE_IN_SET(scheme, "HTTP", "HTTPS")) {
|
||||
long status;
|
||||
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind
|
||||
bpf
|
||||
breakpoint
|
||||
brk
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat
|
||||
get_mempolicy
|
||||
get_robust_list
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu
|
||||
getcwd
|
||||
getdents
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node
|
||||
set_robust_list
|
||||
set_thread_area
|
||||
set_tid_address
|
||||
set_tls
|
||||
setdomainname
|
||||
setfsgid
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat
|
||||
unshare
|
||||
uretprobe
|
||||
userfaultfd
|
||||
usr26
|
||||
usr32
|
||||
ustat
|
||||
utime
|
||||
utimensat
|
||||
|
@ -16,9 +16,10 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 282
|
||||
bpf 386
|
||||
breakpoint 983041
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
cacheflush 983042
|
||||
cachestat 451
|
||||
capget 184
|
||||
capset 185
|
||||
@ -113,6 +114,7 @@ futimesat 326
|
||||
get_mempolicy 320
|
||||
get_robust_list 339
|
||||
get_thread_area
|
||||
get_tls 983046
|
||||
getcpu 345
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 338
|
||||
set_thread_area
|
||||
set_tid_address 256
|
||||
set_tls 983045
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32 216
|
||||
@ -512,6 +515,8 @@ unlinkat 328
|
||||
unshare 337
|
||||
uretprobe
|
||||
userfaultfd 388
|
||||
usr26 983043
|
||||
usr32 983044
|
||||
ustat 62
|
||||
utime
|
||||
utimensat 348
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 200
|
||||
bpf 280
|
||||
breakpoint
|
||||
brk 214
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat
|
||||
get_mempolicy 236
|
||||
get_robust_list 100
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 168
|
||||
getcwd 17
|
||||
getdents
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 99
|
||||
set_thread_area
|
||||
set_tid_address 96
|
||||
set_tls
|
||||
setdomainname 162
|
||||
setfsgid 152
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 35
|
||||
unshare 97
|
||||
uretprobe
|
||||
userfaultfd 282
|
||||
usr26
|
||||
usr32
|
||||
ustat
|
||||
utime
|
||||
utimensat 88
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 361
|
||||
bpf 357
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 299
|
||||
get_mempolicy 275
|
||||
get_robust_list 312
|
||||
get_thread_area 244
|
||||
get_tls
|
||||
getcpu 318
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 311
|
||||
set_thread_area 243
|
||||
set_tid_address 258
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32 216
|
||||
@ -512,6 +515,8 @@ unlinkat 301
|
||||
unshare 310
|
||||
uretprobe
|
||||
userfaultfd 374
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 320
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 200
|
||||
bpf 280
|
||||
breakpoint
|
||||
brk 214
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat
|
||||
get_mempolicy 236
|
||||
get_robust_list 100
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 168
|
||||
getcwd 17
|
||||
getdents
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 99
|
||||
set_thread_area
|
||||
set_tid_address 96
|
||||
set_tls
|
||||
setdomainname 162
|
||||
setfsgid 152
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 35
|
||||
unshare 97
|
||||
uretprobe
|
||||
userfaultfd 282
|
||||
usr26
|
||||
usr32
|
||||
ustat
|
||||
utime
|
||||
utimensat 88
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier 336
|
||||
atomic_cmpxchg_32 335
|
||||
bind 358
|
||||
bpf 354
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush 123
|
||||
@ -113,6 +114,7 @@ futimesat 292
|
||||
get_mempolicy 269
|
||||
get_robust_list 305
|
||||
get_thread_area 333
|
||||
get_tls
|
||||
getcpu 314
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 304
|
||||
set_thread_area 334
|
||||
set_tid_address 253
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32 216
|
||||
@ -512,6 +515,8 @@ unlinkat 294
|
||||
unshare 303
|
||||
uretprobe
|
||||
userfaultfd 373
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 316
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 5048
|
||||
bpf 5315
|
||||
breakpoint
|
||||
brk 5012
|
||||
cachectl 5198
|
||||
cacheflush 5197
|
||||
@ -113,6 +114,7 @@ futimesat 5251
|
||||
get_mempolicy 5228
|
||||
get_robust_list 5269
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 5271
|
||||
getcwd 5077
|
||||
getdents 5076
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 5450
|
||||
set_robust_list 5268
|
||||
set_thread_area 5242
|
||||
set_tid_address 5212
|
||||
set_tls
|
||||
setdomainname 5166
|
||||
setfsgid 5121
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 5253
|
||||
unshare 5262
|
||||
uretprobe
|
||||
userfaultfd 5317
|
||||
usr26
|
||||
usr32
|
||||
ustat 5133
|
||||
utime 5130
|
||||
utimensat 5275
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 6048
|
||||
bpf 6319
|
||||
breakpoint
|
||||
brk 6012
|
||||
cachectl 6198
|
||||
cacheflush 6197
|
||||
@ -113,6 +114,7 @@ futimesat 6255
|
||||
get_mempolicy 6232
|
||||
get_robust_list 6273
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 6275
|
||||
getcwd 6077
|
||||
getdents 6076
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 6450
|
||||
set_robust_list 6272
|
||||
set_thread_area 6246
|
||||
set_tid_address 6213
|
||||
set_tls
|
||||
setdomainname 6166
|
||||
setfsgid 6121
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 6257
|
||||
unshare 6266
|
||||
uretprobe
|
||||
userfaultfd 6321
|
||||
usr26
|
||||
usr32
|
||||
ustat 6133
|
||||
utime 6130
|
||||
utimensat 6279
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 4169
|
||||
bpf 4355
|
||||
breakpoint
|
||||
brk 4045
|
||||
cachectl 4148
|
||||
cacheflush 4147
|
||||
@ -113,6 +114,7 @@ futimesat 4292
|
||||
get_mempolicy 4269
|
||||
get_robust_list 4310
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 4312
|
||||
getcwd 4203
|
||||
getdents 4141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 4450
|
||||
set_robust_list 4309
|
||||
set_thread_area 4283
|
||||
set_tid_address 4252
|
||||
set_tls
|
||||
setdomainname 4121
|
||||
setfsgid 4139
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 4294
|
||||
unshare 4303
|
||||
uretprobe
|
||||
userfaultfd 4357
|
||||
usr26
|
||||
usr32
|
||||
ustat 4062
|
||||
utime 4030
|
||||
utimensat 4316
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 22
|
||||
bpf 341
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush 356
|
||||
@ -113,6 +114,7 @@ futimesat 279
|
||||
get_mempolicy 261
|
||||
get_robust_list 290
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 296
|
||||
getcwd 110
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 289
|
||||
set_thread_area
|
||||
set_tid_address 237
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 281
|
||||
unshare 288
|
||||
uretprobe
|
||||
userfaultfd 344
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 301
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 327
|
||||
bpf 361
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 290
|
||||
get_mempolicy 260
|
||||
get_robust_list 299
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 302
|
||||
getcwd 182
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 300
|
||||
set_thread_area
|
||||
set_tid_address 232
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 292
|
||||
unshare 282
|
||||
uretprobe
|
||||
userfaultfd 364
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 304
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 327
|
||||
bpf 361
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 290
|
||||
get_mempolicy 260
|
||||
get_robust_list 299
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 302
|
||||
getcwd 182
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 300
|
||||
set_thread_area
|
||||
set_tid_address 232
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 292
|
||||
unshare 282
|
||||
uretprobe
|
||||
userfaultfd 364
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 304
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 200
|
||||
bpf 280
|
||||
breakpoint
|
||||
brk 214
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat
|
||||
get_mempolicy 236
|
||||
get_robust_list 100
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 168
|
||||
getcwd 17
|
||||
getdents
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 99
|
||||
set_thread_area
|
||||
set_tid_address 96
|
||||
set_tls
|
||||
setdomainname 162
|
||||
setfsgid 152
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 35
|
||||
unshare 97
|
||||
uretprobe
|
||||
userfaultfd 282
|
||||
usr26
|
||||
usr32
|
||||
ustat
|
||||
utime
|
||||
utimensat
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 200
|
||||
bpf 280
|
||||
breakpoint
|
||||
brk 214
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat
|
||||
get_mempolicy 236
|
||||
get_robust_list 100
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 168
|
||||
getcwd 17
|
||||
getdents
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 99
|
||||
set_thread_area
|
||||
set_tid_address 96
|
||||
set_tls
|
||||
setdomainname 162
|
||||
setfsgid 152
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 35
|
||||
unshare 97
|
||||
uretprobe
|
||||
userfaultfd 282
|
||||
usr26
|
||||
usr32
|
||||
ustat
|
||||
utime
|
||||
utimensat 88
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 361
|
||||
bpf 351
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 292
|
||||
get_mempolicy 269
|
||||
get_robust_list 305
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 311
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 304
|
||||
set_thread_area
|
||||
set_tid_address 252
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32 216
|
||||
@ -512,6 +515,8 @@ unlinkat 294
|
||||
unshare 303
|
||||
uretprobe
|
||||
userfaultfd 355
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 315
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 361
|
||||
bpf 351
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 292
|
||||
get_mempolicy 269
|
||||
get_robust_list 305
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 311
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 304
|
||||
set_thread_area
|
||||
set_tid_address 252
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 216
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 294
|
||||
unshare 303
|
||||
uretprobe
|
||||
userfaultfd 355
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 315
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 341
|
||||
bpf 375
|
||||
breakpoint
|
||||
brk 45
|
||||
cachectl
|
||||
cacheflush 123
|
||||
@ -113,6 +114,7 @@ futimesat 299
|
||||
get_mempolicy 275
|
||||
get_robust_list 312
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 318
|
||||
getcwd 183
|
||||
getdents 141
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 311
|
||||
set_thread_area
|
||||
set_tid_address 258
|
||||
set_tls
|
||||
setdomainname 121
|
||||
setfsgid 139
|
||||
setfsgid32 216
|
||||
@ -512,6 +515,8 @@ unlinkat 301
|
||||
unshare 310
|
||||
uretprobe
|
||||
userfaultfd 377
|
||||
usr26
|
||||
usr32
|
||||
ustat 62
|
||||
utime 30
|
||||
utimensat 320
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 353
|
||||
bpf 349
|
||||
breakpoint
|
||||
brk 17
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 288
|
||||
get_mempolicy 304
|
||||
get_robust_list 301
|
||||
get_thread_area
|
||||
get_tls
|
||||
getcpu 308
|
||||
getcwd 119
|
||||
getdents 174
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 300
|
||||
set_thread_area
|
||||
set_tid_address 166
|
||||
set_tls
|
||||
setdomainname 163
|
||||
setfsgid 229
|
||||
setfsgid32 94
|
||||
@ -512,6 +515,8 @@ unlinkat 290
|
||||
unshare 299
|
||||
uretprobe
|
||||
userfaultfd 352
|
||||
usr26
|
||||
usr32
|
||||
ustat 168
|
||||
utime 30
|
||||
utimensat 310
|
||||
|
@ -16,6 +16,7 @@ atomic_barrier
|
||||
atomic_cmpxchg_32
|
||||
bind 49
|
||||
bpf 321
|
||||
breakpoint
|
||||
brk 12
|
||||
cachectl
|
||||
cacheflush
|
||||
@ -113,6 +114,7 @@ futimesat 261
|
||||
get_mempolicy 239
|
||||
get_robust_list 274
|
||||
get_thread_area 211
|
||||
get_tls
|
||||
getcpu 309
|
||||
getcwd 79
|
||||
getdents 78
|
||||
@ -404,6 +406,7 @@ set_mempolicy_home_node 450
|
||||
set_robust_list 273
|
||||
set_thread_area 205
|
||||
set_tid_address 218
|
||||
set_tls
|
||||
setdomainname 171
|
||||
setfsgid 123
|
||||
setfsgid32
|
||||
@ -512,6 +515,8 @@ unlinkat 263
|
||||
unshare 272
|
||||
uretprobe 335
|
||||
userfaultfd 323
|
||||
usr26
|
||||
usr32
|
||||
ustat 136
|
||||
utime 132
|
||||
utimensat 280
|
||||
|
@ -1061,7 +1061,7 @@ static int context_execute(Context *c) {
|
||||
}
|
||||
|
||||
ret = execute_strv(
|
||||
/* name = */ NULL,
|
||||
"plugins",
|
||||
c->plugins,
|
||||
/* root = */ NULL,
|
||||
USEC_INFINITY,
|
||||
|
@ -150,8 +150,8 @@ int device_set_syspath(sd_device *device, const char *_syspath, bool verify) {
|
||||
r = chase(_syspath, NULL, 0, &syspath, &fd);
|
||||
if (r == -ENOENT)
|
||||
/* the device does not exist (any more?) */
|
||||
return log_debug_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||
"sd-device: Failed to chase symlinks in \"%s\".", _syspath);
|
||||
return log_trace_errno(SYNTHETIC_ERRNO(ENODEV),
|
||||
"sd-device: Device \"%s\" not found.", _syspath);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "sd-device: Failed to get target of '%s': %m", _syspath);
|
||||
|
||||
|
@ -678,7 +678,6 @@ static const char* const user_env_generator_paths[] = {
|
||||
};
|
||||
|
||||
char** generator_binary_paths_internal(RuntimeScope scope, bool env_generator) {
|
||||
|
||||
static const struct {
|
||||
const char *env_name;
|
||||
const char * const *paths[_RUNTIME_SCOPE_MAX];
|
||||
|
@ -1152,7 +1152,7 @@ static int register_session(
|
||||
JSON_BUILD_PAIR_STRING_NON_EMPTY("RemoteHost", c->remote_host));
|
||||
if (r < 0)
|
||||
return pam_syslog_errno(handle, LOG_ERR, r,
|
||||
"Failed to register session: %s", error_id);
|
||||
"Failed to issue io.systemd.Login.CreateSession varlink call: %m");
|
||||
if (streq_ptr(error_id, "io.systemd.Login.AlreadySessionMember")) {
|
||||
/* We are already in a session, don't do anything */
|
||||
pam_debug_syslog(handle, debug, "Not creating session: %s", error_id);
|
||||
@ -1161,7 +1161,7 @@ static int register_session(
|
||||
}
|
||||
if (error_id)
|
||||
return pam_syslog_errno(handle, LOG_ERR, sd_varlink_error_to_errno(error_id, vreply),
|
||||
"Failed to issue CreateSession() varlink call: %s", error_id);
|
||||
"Varlink call io.systemd.Login.CreateSession failed: %s", error_id);
|
||||
|
||||
struct {
|
||||
const char *id;
|
||||
@ -1859,10 +1859,11 @@ _public_ PAM_EXTERN int pam_sm_close_session(
|
||||
&error_id,
|
||||
SD_JSON_BUILD_PAIR_STRING("Id", id));
|
||||
if (r < 0)
|
||||
return pam_syslog_errno(handle, LOG_ERR, r, "Failed to register session: %s", error_id);
|
||||
return pam_syslog_errno(handle, LOG_ERR, r,
|
||||
"Failed to issue io.systemd.Login.ReleaseSession varlink call: %m");
|
||||
if (error_id)
|
||||
return pam_syslog_errno(handle, LOG_ERR, sd_varlink_error_to_errno(error_id, vreply),
|
||||
"Failed to issue ReleaseSession() varlink call: %s", error_id);
|
||||
"Varlink call io.systemd.Login.ReleaseSession failed: %s", error_id);
|
||||
|
||||
done = true;
|
||||
}
|
||||
|
@ -1,6 +1,5 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include "sd-bus.h"
|
||||
#include "sd-netlink.h"
|
||||
#include "sd-network.h"
|
||||
|
||||
@ -14,7 +13,6 @@
|
||||
#include "networkctl-util.h"
|
||||
|
||||
int list_links(int argc, char *argv[], void *userdata) {
|
||||
_cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
|
||||
_cleanup_(sd_netlink_unrefp) sd_netlink *rtnl = NULL;
|
||||
_cleanup_(link_info_array_freep) LinkInfo *links = NULL;
|
||||
_cleanup_(table_unrefp) Table *table = NULL;
|
||||
@ -25,10 +23,6 @@ int list_links(int argc, char *argv[], void *userdata) {
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
r = acquire_bus(&bus);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = sd_netlink_open(&rtnl);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to connect to netlink: %m");
|
||||
|
@ -73,6 +73,7 @@ Files.PrivateUsersOwnership, config_parse_userns_ownership, 0,
|
||||
Files.BindUser, config_parse_bind_user, 0, offsetof(Settings, bind_user)
|
||||
Files.BindUserShell, config_parse_bind_user_shell, 0, 0
|
||||
Network.Private, config_parse_tristate, 0, offsetof(Settings, private_network)
|
||||
Network.NamespacePath, config_parse_path, 0, offsetof(Settings, network_namespace_path)
|
||||
Network.Interface, config_parse_network_iface_pair, 0, offsetof(Settings, network_interfaces)
|
||||
Network.MACVLAN, config_parse_macvlan_iface_pair, 0, offsetof(Settings, network_macvlan)
|
||||
Network.IPVLAN, config_parse_ipvlan_iface_pair, 0, offsetof(Settings, network_ipvlan)
|
||||
|
@ -202,6 +202,7 @@ static AppendMode arg_append_fstab = APPEND_NO;
|
||||
static char *arg_generate_fstab = NULL;
|
||||
static char *arg_generate_crypttab = NULL;
|
||||
static Set *arg_verity_settings = NULL;
|
||||
static bool arg_relax_copy_block_security = false;
|
||||
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_node, freep);
|
||||
STATIC_DESTRUCTOR_REGISTER(arg_root, freep);
|
||||
@ -8737,6 +8738,9 @@ static int parse_argv(int argc, char *argv[], X509 **ret_certificate, EVP_PKEY *
|
||||
r = parse_path_argument(optarg, /* suppress_root= */ false, &arg_image);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
arg_relax_copy_block_security = false;
|
||||
|
||||
break;
|
||||
|
||||
case ARG_IMAGE_POLICY:
|
||||
@ -9157,6 +9161,8 @@ static int parse_argv(int argc, char *argv[], X509 **ret_certificate, EVP_PKEY *
|
||||
arg_root = strdup("/sysusr");
|
||||
if (!arg_root)
|
||||
return log_oom();
|
||||
|
||||
arg_relax_copy_block_security = true;
|
||||
}
|
||||
|
||||
if (argc > optind) {
|
||||
@ -9831,7 +9837,9 @@ static int run(int argc, char *argv[]) {
|
||||
r = context_open_copy_block_paths(
|
||||
context,
|
||||
loop_device ? loop_device->devno : /* if --image= is specified, only allow partitions on the loopback device */
|
||||
arg_root && !arg_image ? 0 : /* if --root= is specified, don't accept any block device */
|
||||
/* if --root= is specified, don't accept any block device, unless it
|
||||
* was set automatically because we are in the initrd */
|
||||
arg_root && !arg_image && !arg_relax_copy_block_security ? 0 :
|
||||
(dev_t) -1); /* if neither is specified, make no restrictions */
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
@ -74,33 +74,47 @@
|
||||
/* how many times to wait for the device nodes to appear */
|
||||
#define N_DEVICE_NODE_LIST_ATTEMPTS 10
|
||||
|
||||
int dissect_fstype_ok(const char *fstype) {
|
||||
static int allowed_fstypes(char ***ret_strv) {
|
||||
_cleanup_strv_free_ char **l = NULL;
|
||||
const char *e;
|
||||
bool b;
|
||||
|
||||
assert(ret_strv);
|
||||
|
||||
e = secure_getenv("SYSTEMD_DISSECT_FILE_SYSTEMS");
|
||||
if (e) {
|
||||
l = strv_split(e, ":");
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
l = strv_new("btrfs",
|
||||
"erofs",
|
||||
"ext4",
|
||||
"f2fs",
|
||||
"squashfs",
|
||||
"vfat",
|
||||
"xfs");
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
*ret_strv = TAKE_PTR(l);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dissect_fstype_ok(const char *fstype) {
|
||||
_cleanup_strv_free_ char **l = NULL;
|
||||
int r;
|
||||
|
||||
/* When we automatically mount file systems, be a bit conservative by default what we are willing to
|
||||
* mount, just as an extra safety net to not mount with badly maintained legacy file system
|
||||
* drivers. */
|
||||
|
||||
e = secure_getenv("SYSTEMD_DISSECT_FILE_SYSTEMS");
|
||||
if (e) {
|
||||
_cleanup_strv_free_ char **l = NULL;
|
||||
r = allowed_fstypes(&l);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
l = strv_split(e, ":");
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
|
||||
b = strv_contains(l, fstype);
|
||||
} else
|
||||
b = STR_IN_SET(fstype,
|
||||
"btrfs",
|
||||
"erofs",
|
||||
"ext4",
|
||||
"f2fs",
|
||||
"squashfs",
|
||||
"vfat",
|
||||
"xfs");
|
||||
if (b)
|
||||
if (strv_contains(l, fstype))
|
||||
return true;
|
||||
|
||||
log_debug("File system type '%s' is not allowed to be mounted as result of automatic dissection.", fstype);
|
||||
@ -177,11 +191,37 @@ int probe_sector_size_prefer_ioctl(int fd, uint32_t *ret) {
|
||||
return probe_sector_size(fd, ret);
|
||||
}
|
||||
|
||||
#if HAVE_BLKID
|
||||
static int probe_blkid_filter(blkid_probe p) {
|
||||
_cleanup_strv_free_ char **fstypes = NULL;
|
||||
int r;
|
||||
|
||||
assert(p);
|
||||
|
||||
r = allowed_fstypes(&fstypes);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
errno = 0;
|
||||
r = blkid_probe_filter_superblocks_type(p, BLKID_FLTR_ONLYIN, fstypes);
|
||||
if (r != 0)
|
||||
return errno_or_else(EINVAL);
|
||||
|
||||
errno = 0;
|
||||
r = blkid_probe_filter_superblocks_usage(p, BLKID_FLTR_NOTIN, BLKID_USAGE_RAID);
|
||||
if (r != 0)
|
||||
return errno_or_else(EINVAL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
int probe_filesystem_full(
|
||||
int fd,
|
||||
const char *path,
|
||||
uint64_t offset,
|
||||
uint64_t size,
|
||||
bool restrict_fstypes,
|
||||
char **ret_fstype) {
|
||||
|
||||
/* Try to find device content type and return it in *ret_fstype. If nothing is found,
|
||||
@ -221,6 +261,12 @@ int probe_filesystem_full(
|
||||
if (!b)
|
||||
return -ENOMEM;
|
||||
|
||||
if (restrict_fstypes) {
|
||||
r = probe_blkid_filter(b);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
/* The Linux kernel maintains separate block device caches for main ("whole") and partition block
|
||||
* devices, which means making a change to one might not be reflected immediately when reading via
|
||||
* the other. That's massively confusing when mixing accesses to such devices. Let's address this in
|
||||
@ -387,9 +433,9 @@ static int dissected_image_probe_filesystems(
|
||||
/* If we have an fd referring to the partition block device, use that. Otherwise go
|
||||
* via the whole block device or backing regular file, and read via offset. */
|
||||
if (p->mount_node_fd >= 0)
|
||||
r = probe_filesystem_full(p->mount_node_fd, p->node, 0, UINT64_MAX, &p->fstype);
|
||||
r = probe_filesystem_full(p->mount_node_fd, p->node, 0, UINT64_MAX, /* bool restrict_fstypes= */ true, &p->fstype);
|
||||
else
|
||||
r = probe_filesystem_full(fd, p->node, p->offset, p->size, &p->fstype);
|
||||
r = probe_filesystem_full(fd, p->node, p->offset, p->size, /* bool restrict_fstypes= */ true, &p->fstype);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@ -751,6 +797,10 @@ static int dissect_image(
|
||||
if (!b)
|
||||
return -ENOMEM;
|
||||
|
||||
r = probe_blkid_filter(b);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
errno = 0;
|
||||
r = blkid_probe_set_device(b, fd, 0, 0);
|
||||
if (r != 0)
|
||||
@ -3053,7 +3103,7 @@ int dissected_image_decrypt(
|
||||
}
|
||||
|
||||
if (!p->decrypted_fstype && p->mount_node_fd >= 0 && p->decrypted_node) {
|
||||
r = probe_filesystem_full(p->mount_node_fd, p->decrypted_node, 0, UINT64_MAX, &p->decrypted_fstype);
|
||||
r = probe_filesystem_full(p->mount_node_fd, p->decrypted_node, 0, UINT64_MAX, /* bool restrict_fstypes= */ true, &p->decrypted_fstype);
|
||||
if (r < 0 && r != -EUCLEAN)
|
||||
return r;
|
||||
}
|
||||
|
@ -156,9 +156,9 @@ MountOptions* mount_options_free_all(MountOptions *options);
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(MountOptions*, mount_options_free_all);
|
||||
const char* mount_options_from_designator(const MountOptions *options, PartitionDesignator designator);
|
||||
|
||||
int probe_filesystem_full(int fd, const char *path, uint64_t offset, uint64_t size, char **ret_fstype);
|
||||
int probe_filesystem_full(int fd, const char *path, uint64_t offset, uint64_t size, bool restrict_fstypes, char **ret_fstype);
|
||||
static inline int probe_filesystem(const char *path, char **ret_fstype) {
|
||||
return probe_filesystem_full(-1, path, 0, UINT64_MAX, ret_fstype);
|
||||
return probe_filesystem_full(-1, path, 0, UINT64_MAX, /* bool restrict_fstypes= */ false, ret_fstype);
|
||||
}
|
||||
|
||||
int dissect_log_error(int log_level, int r, const char *name, const VeritySettings *verity);
|
||||
|
@ -243,13 +243,13 @@ int execute_strv(
|
||||
pid_t executor_pid;
|
||||
int r;
|
||||
|
||||
assert(name);
|
||||
assert(!FLAGS_SET(flags, EXEC_DIR_PARALLEL | EXEC_DIR_SKIP_REMAINING));
|
||||
|
||||
if (strv_isempty(paths))
|
||||
return 0;
|
||||
|
||||
if (callbacks) {
|
||||
assert(name);
|
||||
assert(callbacks[STDOUT_GENERATE]);
|
||||
assert(callbacks[STDOUT_COLLECT]);
|
||||
assert(callbacks[STDOUT_CONSUME]);
|
||||
@ -257,14 +257,16 @@ int execute_strv(
|
||||
|
||||
fd = open_serialization_fd(name);
|
||||
if (fd < 0)
|
||||
return log_error_errno(fd, "Failed to open serialization file: %m");
|
||||
return log_error_errno(fd, "Failed to open serialization file for %s: %m", name);
|
||||
}
|
||||
|
||||
/* Executes all binaries in the directories serially or in parallel and waits for
|
||||
* them to finish. Optionally a timeout is applied. If a file with the same name
|
||||
* exists in more than one directory, the earliest one wins. */
|
||||
|
||||
r = safe_fork("(sd-exec-strv)", FORK_RESET_SIGNALS|FORK_DEATHSIG_SIGTERM|FORK_LOG, &executor_pid);
|
||||
const char *process_name = strjoina("(", name, ")");
|
||||
|
||||
r = safe_fork(process_name, FORK_RESET_SIGNALS|FORK_DEATHSIG_SIGTERM|FORK_LOG, &executor_pid);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0) {
|
||||
@ -272,7 +274,7 @@ int execute_strv(
|
||||
_exit(r < 0 ? EXIT_FAILURE : r);
|
||||
}
|
||||
|
||||
r = wait_for_terminate_and_check("(sd-exec-strv)", executor_pid, 0);
|
||||
r = wait_for_terminate_and_check(process_name, executor_pid, 0);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (!FLAGS_SET(flags, EXEC_DIR_IGNORE_ERRORS) && r > 0)
|
||||
@ -283,16 +285,17 @@ int execute_strv(
|
||||
|
||||
r = finish_serialization_fd(fd);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to finish serialization fd: %m");
|
||||
return log_error_errno(r, "Failed to finish serialization fd for %s: %m", name);
|
||||
|
||||
r = callbacks[STDOUT_CONSUME](TAKE_FD(fd), callback_args[STDOUT_CONSUME]);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to parse returned data: %m");
|
||||
return log_error_errno(r, "Failed to parse returned data for %s: %m", name);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int execute_directories(
|
||||
const char *name,
|
||||
const char * const *directories,
|
||||
usec_t timeout,
|
||||
gather_stdout_callback_t const callbacks[_STDOUT_CONSUME_MAX],
|
||||
@ -302,9 +305,9 @@ int execute_directories(
|
||||
ExecDirFlags flags) {
|
||||
|
||||
_cleanup_strv_free_ char **paths = NULL;
|
||||
_cleanup_free_ char *name = NULL;
|
||||
int r;
|
||||
|
||||
assert(name);
|
||||
assert(!strv_isempty((char* const*) directories));
|
||||
|
||||
r = conf_files_list_strv(
|
||||
@ -314,19 +317,13 @@ int execute_directories(
|
||||
CONF_FILES_EXECUTABLE|CONF_FILES_REGULAR|CONF_FILES_FILTER_MASKED,
|
||||
directories);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to enumerate executables: %m");
|
||||
return log_error_errno(r, "%s: failed to enumerate executables: %m", name);
|
||||
|
||||
if (strv_isempty(paths)) {
|
||||
log_debug("No executables found.");
|
||||
log_debug("%s: no executables found.", name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (callbacks) {
|
||||
r = path_extract_filename(directories[0], &name);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Failed to extract file name from '%s': %m", directories[0]);
|
||||
}
|
||||
|
||||
return execute_strv(name, paths, /* root = */ NULL, timeout, callbacks, callback_args, argv, envp, flags);
|
||||
}
|
||||
|
||||
|
@ -32,6 +32,7 @@ int execute_strv(
|
||||
ExecDirFlags flags);
|
||||
|
||||
int execute_directories(
|
||||
const char *name,
|
||||
const char * const *directories,
|
||||
usec_t timeout,
|
||||
gather_stdout_callback_t const callbacks[_STDOUT_CONSUME_MAX],
|
||||
|
@ -208,12 +208,6 @@ static int mount_one(const MountPoint *p, bool relabel) {
|
||||
}
|
||||
}
|
||||
|
||||
log_debug("Mounting %s to %s of type %s with options %s.",
|
||||
p->what,
|
||||
p->where,
|
||||
p->type,
|
||||
o ?: "''");
|
||||
|
||||
r = mount_verbose_full(priority, p->what, p->where, p->type, p->flags, o, FLAGS_SET(p->mode, MNT_FOLLOW_SYMLINK));
|
||||
if (r < 0)
|
||||
return FLAGS_SET(p->mode, MNT_FATAL) ? r : 0;
|
||||
|
@ -4,11 +4,16 @@
|
||||
|
||||
static SD_VARLINK_DEFINE_METHOD(
|
||||
Extend,
|
||||
SD_VARLINK_FIELD_COMMENT("PCR number to extend, in range of 0…23"),
|
||||
SD_VARLINK_DEFINE_INPUT(pcr, SD_VARLINK_INT, 0),
|
||||
SD_VARLINK_FIELD_COMMENT("Text string to measure. (Specify either this, or the 'data' field below, not both)"),
|
||||
SD_VARLINK_DEFINE_INPUT(text, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
|
||||
SD_VARLINK_FIELD_COMMENT("Binary data to measure, encoded in Base64. (Specify either this, or the 'text' field above, not both)"),
|
||||
SD_VARLINK_DEFINE_INPUT(data, SD_VARLINK_STRING, SD_VARLINK_NULLABLE));
|
||||
|
||||
SD_VARLINK_DEFINE_INTERFACE(
|
||||
io_systemd_PCRExtend,
|
||||
"io.systemd.PCRExtend",
|
||||
SD_VARLINK_INTERFACE_COMMENT("TPM PCR Extension APIs"),
|
||||
SD_VARLINK_SYMBOL_COMMENT("Measure some text or binary data into a PCR"),
|
||||
&vl_method_Extend);
|
||||
|
@ -575,7 +575,15 @@ int main(int argc, char *argv[]) {
|
||||
arg_verb,
|
||||
NULL,
|
||||
};
|
||||
(void) execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, (char**) arguments, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
(void) execute_directories(
|
||||
"system-shutdown",
|
||||
dirs,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
/* callbacks= */ NULL,
|
||||
/* callback_args= */ NULL,
|
||||
(char**) arguments,
|
||||
/* envp= */ NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
|
||||
(void) rlimit_nofile_safe();
|
||||
|
||||
|
@ -311,7 +311,15 @@ static int execute(
|
||||
if (setenv("SYSTEMD_SLEEP_ACTION", action, /* overwrite = */ 1) < 0)
|
||||
log_warning_errno(errno, "Failed to set SYSTEMD_SLEEP_ACTION=%s, ignoring: %m", action);
|
||||
|
||||
(void) execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, (char **) arguments, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
(void) execute_directories(
|
||||
"system-sleep",
|
||||
dirs,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
/* callbacks= */ NULL,
|
||||
/* callback_args= */ NULL,
|
||||
(char **) arguments,
|
||||
/* envp= */ NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
(void) lock_all_homes();
|
||||
|
||||
log_struct(LOG_INFO,
|
||||
@ -332,8 +340,15 @@ static int execute(
|
||||
LOG_ITEM("SLEEP=%s", sleep_operation_to_string(arg_operation)));
|
||||
|
||||
arguments[1] = "post";
|
||||
(void) execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, (char **) arguments, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
|
||||
(void) execute_directories(
|
||||
"system-sleep",
|
||||
dirs,
|
||||
DEFAULT_TIMEOUT_USEC,
|
||||
/* callbacks= */ NULL,
|
||||
/* callback_args= */ NULL,
|
||||
(char **) arguments,
|
||||
/* envp= */ NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
if (r >= 0)
|
||||
return 0;
|
||||
|
||||
|
@ -17,6 +17,7 @@
|
||||
#include "bus-util.h"
|
||||
#include "capability-util.h"
|
||||
#include "chase.h"
|
||||
#include "conf-parser.h"
|
||||
#include "devnum-util.h"
|
||||
#include "discover-image.h"
|
||||
#include "dissect-image.h"
|
||||
@ -148,6 +149,37 @@ static int parse_mutable_mode(const char *p) {
|
||||
return mutable_mode_from_string(p);
|
||||
}
|
||||
|
||||
static DEFINE_CONFIG_PARSE_ENUM(config_parse_mutable_mode, mutable_mode, MutableMode);
|
||||
|
||||
static int parse_config_file(ImageClass image_class) {
|
||||
const char *section = image_class == IMAGE_SYSEXT ? "SysExt" : "ConfExt";
|
||||
const ConfigTableItem items[] = {
|
||||
{ section, "Mutable", config_parse_mutable_mode, 0, &arg_mutable },
|
||||
{ section, "ImagePolicy", config_parse_image_policy, 0, &arg_image_policy },
|
||||
{}
|
||||
};
|
||||
_cleanup_free_ char *config_file = NULL;
|
||||
int r;
|
||||
|
||||
config_file = strjoin("systemd/", image_class_info[image_class].short_identifier, ".conf");
|
||||
if (!config_file)
|
||||
return log_oom();
|
||||
|
||||
r = config_parse_standard_file_with_dropins_full(
|
||||
arg_root,
|
||||
config_file,
|
||||
image_class == IMAGE_SYSEXT ? "SysExt\0" : "ConfExt\0",
|
||||
config_item_table_lookup, items,
|
||||
CONFIG_PARSE_WARN,
|
||||
/* userdata = */ NULL,
|
||||
/* ret_stats_by_path = */ NULL,
|
||||
/* ret_dropin_files = */ NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int is_our_mount_point(
|
||||
ImageClass image_class,
|
||||
const char *p) {
|
||||
@ -1830,10 +1862,7 @@ static int merge_subprocess(
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = dissected_image_decrypt_interactively(
|
||||
m, NULL,
|
||||
&verity_settings,
|
||||
flags);
|
||||
r = dissected_image_decrypt(m, /* passphrase= */ NULL, &verity_settings, flags);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -2593,6 +2622,7 @@ static int run(int argc, char *argv[]) {
|
||||
|
||||
arg_image_class = invoked_as(argv, "systemd-confext") ? IMAGE_CONFEXT : IMAGE_SYSEXT;
|
||||
|
||||
/* Parse environment variable first */
|
||||
env_var = getenv(image_class_info[arg_image_class].mode_env);
|
||||
if (env_var) {
|
||||
r = parse_mutable_mode(env_var);
|
||||
@ -2603,6 +2633,12 @@ static int run(int argc, char *argv[]) {
|
||||
arg_mutable = r;
|
||||
}
|
||||
|
||||
/* Parse configuration file */
|
||||
r = parse_config_file(arg_image_class);
|
||||
if (r < 0)
|
||||
log_warning_errno(r, "Failed to parse global config file, ignoring: %m");
|
||||
|
||||
/* Parse command line */
|
||||
r = parse_argv(argc, argv);
|
||||
if (r <= 0)
|
||||
return r;
|
||||
|
@ -117,9 +117,9 @@ static void test_execute_directory_one(bool gather_stdout) {
|
||||
return;
|
||||
|
||||
if (gather_stdout)
|
||||
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, ignore_stdout, ignore_stdout_args, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
execute_directories("test", dirs, DEFAULT_TIMEOUT_USEC, ignore_stdout, ignore_stdout_args, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
else
|
||||
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
execute_directories("test", dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
|
||||
assert_se(chdir(tmp_lo) == 0);
|
||||
assert_se(access("it_works", F_OK) >= 0);
|
||||
@ -189,7 +189,9 @@ TEST(execution_order) {
|
||||
if (access(name, X_OK) < 0 && ERRNO_IS_PRIVILEGE(errno))
|
||||
return;
|
||||
|
||||
execute_directories(dirs, DEFAULT_TIMEOUT_USEC, ignore_stdout, ignore_stdout_args, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
execute_directories(__func__,
|
||||
dirs, DEFAULT_TIMEOUT_USEC, ignore_stdout, ignore_stdout_args, NULL, NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
|
||||
assert_se(read_full_file(output, &contents, NULL) >= 0);
|
||||
ASSERT_STREQ(contents, "30-override\n80-foo\n90-bar\nlast\n");
|
||||
@ -270,7 +272,8 @@ TEST(stdout_gathering) {
|
||||
if (access(name, X_OK) < 0 && ERRNO_IS_PRIVILEGE(errno))
|
||||
return;
|
||||
|
||||
r = execute_directories(dirs, DEFAULT_TIMEOUT_USEC, gather_stdouts, args, NULL, NULL,
|
||||
r = execute_directories(__func__,
|
||||
dirs, DEFAULT_TIMEOUT_USEC, gather_stdouts, args, NULL, NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
assert_se(r >= 0);
|
||||
|
||||
@ -337,7 +340,9 @@ TEST(environment_gathering) {
|
||||
if (access(name, X_OK) < 0 && ERRNO_IS_PRIVILEGE(errno))
|
||||
return;
|
||||
|
||||
r = execute_directories(dirs, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, NULL, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
r = execute_directories(__func__,
|
||||
dirs, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, NULL,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
assert_se(r >= 0);
|
||||
|
||||
STRV_FOREACH(p, env)
|
||||
@ -353,7 +358,9 @@ TEST(environment_gathering) {
|
||||
env = strv_new("PATH=" DEFAULT_PATH_WITHOUT_SBIN);
|
||||
assert_se(env);
|
||||
|
||||
r = execute_directories(dirs, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, env, EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
r = execute_directories(__func__,
|
||||
dirs, DEFAULT_TIMEOUT_USEC, gather_environment, args, NULL, env,
|
||||
EXEC_DIR_PARALLEL | EXEC_DIR_IGNORE_ERRORS);
|
||||
assert_se(r >= 0);
|
||||
|
||||
STRV_FOREACH(p, env)
|
||||
@ -399,7 +406,8 @@ TEST(error_catching) {
|
||||
if (access(name, X_OK) < 0 && ERRNO_IS_PRIVILEGE(errno))
|
||||
return;
|
||||
|
||||
r = execute_directories(dirs, DEFAULT_TIMEOUT_USEC,
|
||||
r = execute_directories(__func__,
|
||||
dirs, DEFAULT_TIMEOUT_USEC,
|
||||
/* callbacks = */ NULL, /* callback_args = */ NULL,
|
||||
/* argv = */ NULL, /* envp = */ NULL, /* flags = */ 0);
|
||||
|
||||
|
@ -260,7 +260,7 @@ static size_t validate_fds(
|
||||
return c; /* Return number of fds >= 0 in the array */
|
||||
}
|
||||
|
||||
static void test_close_all_fds_inner(void) {
|
||||
static void test_close_all_fds_inner(int (*func)(const int except[], size_t n_except)) {
|
||||
_cleanup_free_ int *fds = NULL, *keep = NULL;
|
||||
size_t n_fds, n_keep;
|
||||
int max_fd;
|
||||
@ -320,13 +320,13 @@ static void test_close_all_fds_inner(void) {
|
||||
log_settle_target();
|
||||
|
||||
/* Close all but the ones to keep */
|
||||
assert_se(close_all_fds(keep, n_keep) >= 0);
|
||||
ASSERT_OK(func(keep, n_keep));
|
||||
|
||||
assert_se(validate_fds(false, fds, n_fds) == n_fds - n_keep);
|
||||
assert_se(validate_fds(true, keep, n_keep) == n_keep);
|
||||
|
||||
/* Close everything else too! */
|
||||
assert_se(close_all_fds(NULL, 0) >= 0);
|
||||
ASSERT_OK(func(NULL, 0));
|
||||
|
||||
assert_se(validate_fds(false, fds, n_fds) == n_fds - n_keep);
|
||||
assert_se(validate_fds(false, keep, n_keep) == n_keep);
|
||||
@ -335,95 +335,32 @@ static void test_close_all_fds_inner(void) {
|
||||
log_open();
|
||||
}
|
||||
|
||||
static int seccomp_prohibit_close_range(void) {
|
||||
#if HAVE_SECCOMP && defined(__SNR_close_range)
|
||||
_cleanup_(seccomp_releasep) scmp_filter_ctx seccomp = NULL;
|
||||
int r;
|
||||
|
||||
r = seccomp_init_for_arch(&seccomp, SCMP_ARCH_NATIVE, SCMP_ACT_ALLOW);
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to acquire seccomp context, ignoring: %m");
|
||||
|
||||
r = seccomp_rule_add_exact(
|
||||
seccomp,
|
||||
SCMP_ACT_ERRNO(EPERM),
|
||||
SCMP_SYS(close_range),
|
||||
0);
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to add close_range() rule, ignoring: %m");
|
||||
|
||||
r = seccomp_load(seccomp);
|
||||
if (r < 0)
|
||||
return log_warning_errno(r, "Failed to apply close_range() restrictions, ignoring: %m");
|
||||
|
||||
return 0;
|
||||
#else
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Seccomp support or close_range() syscall definition not available.");
|
||||
#endif
|
||||
}
|
||||
|
||||
TEST(close_all_fds) {
|
||||
int r;
|
||||
|
||||
/* Runs the test four times. Once as is. Once with close_range() syscall blocked via seccomp, once
|
||||
* with /proc/ overmounted, and once with the combination of both. This should trigger all fallbacks
|
||||
* in the close_range_all() function. */
|
||||
|
||||
r = safe_fork("(caf-plain)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL);
|
||||
ASSERT_OK(r = safe_fork("(caf-plain)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL));
|
||||
if (r == 0) {
|
||||
test_close_all_fds_inner();
|
||||
test_close_all_fds_inner(close_all_fds);
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
assert_se(r >= 0);
|
||||
|
||||
if (geteuid() != 0)
|
||||
return (void) log_tests_skipped("Lacking privileges for test with close_range() blocked and /proc/ overmounted");
|
||||
|
||||
r = safe_fork("(caf-noproc)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT|FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE, NULL);
|
||||
ASSERT_OK(r = safe_fork("(caf-nomalloc)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL));
|
||||
if (r == 0) {
|
||||
r = mount_nofollow_verbose(LOG_WARNING, "tmpfs", "/proc", "tmpfs", 0, NULL);
|
||||
if (r < 0)
|
||||
log_notice("Overmounting /proc/ didn't work, skipping close_all_fds() with masked /proc/.");
|
||||
else
|
||||
test_close_all_fds_inner();
|
||||
test_close_all_fds_inner(close_all_fds_without_malloc);
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
if (ERRNO_IS_NEG_PRIVILEGE(r))
|
||||
return (void) log_tests_skipped("Lacking privileges for test in namespace with /proc/ overmounted");
|
||||
assert_se(r >= 0);
|
||||
|
||||
if (!is_seccomp_available())
|
||||
return (void) log_tests_skipped("Seccomp not available");
|
||||
|
||||
r = safe_fork("(caf-seccomp)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL);
|
||||
ASSERT_OK(r = safe_fork("(caf-proc)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL));
|
||||
if (r == 0) {
|
||||
r = seccomp_prohibit_close_range();
|
||||
if (r < 0)
|
||||
log_notice("Applying seccomp filter didn't work, skipping close_all_fds() test with masked close_range().");
|
||||
else
|
||||
test_close_all_fds_inner();
|
||||
|
||||
test_close_all_fds_inner(close_all_fds_by_proc);
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
assert_se(r >= 0);
|
||||
|
||||
r = safe_fork("(caf-scnp)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT|FORK_NEW_MOUNTNS|FORK_MOUNTNS_SLAVE, NULL);
|
||||
ASSERT_OK(r = safe_fork("(caf-frugal)", FORK_CLOSE_ALL_FDS|FORK_DEATHSIG_SIGTERM|FORK_LOG|FORK_WAIT, NULL));
|
||||
if (r == 0) {
|
||||
r = seccomp_prohibit_close_range();
|
||||
if (r < 0)
|
||||
log_notice("Applying seccomp filter didn't work, skipping close_all_fds() test with masked close_range().");
|
||||
else {
|
||||
r = mount_nofollow_verbose(LOG_WARNING, "tmpfs", "/proc", "tmpfs", 0, NULL);
|
||||
if (r < 0)
|
||||
log_notice("Overmounting /proc/ didn't work, skipping close_all_fds() with masked /proc/.");
|
||||
else
|
||||
test_close_all_fds_inner();
|
||||
}
|
||||
|
||||
test_close_all_fds_inner();
|
||||
test_close_all_fds_inner(close_all_fds_frugal);
|
||||
_exit(EXIT_SUCCESS);
|
||||
}
|
||||
assert_se(r >= 0);
|
||||
}
|
||||
|
||||
TEST(format_proc_fd_path) {
|
||||
@ -680,6 +617,134 @@ TEST(dir_fd_is_root) {
|
||||
assert_se(dir_fd_is_root_or_cwd(fd) == 0);
|
||||
}
|
||||
|
||||
static void test_path_is_root_at_one(bool expected) {
|
||||
ASSERT_OK_POSITIVE(path_is_root("/"));
|
||||
ASSERT_OK_POSITIVE(path_is_root("/."));
|
||||
ASSERT_OK_EQ(path_is_root("/./.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root("/.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root("/../"), expected);
|
||||
ASSERT_OK_EQ(path_is_root("/../."), expected);
|
||||
ASSERT_OK_EQ(path_is_root("/../.."), expected);
|
||||
|
||||
ASSERT_OK_ZERO(path_is_root("/usr"));
|
||||
ASSERT_OK_ZERO(path_is_root("/./usr"));
|
||||
ASSERT_OK_ZERO(path_is_root("/../usr"));
|
||||
ASSERT_OK_ZERO(path_is_root("/.././usr"));
|
||||
ASSERT_OK_ZERO(path_is_root("/../../usr"));
|
||||
|
||||
_cleanup_close_ int fd = -EBADF;
|
||||
ASSERT_OK_ERRNO(fd = open("/", O_CLOEXEC|O_PATH|O_DIRECTORY|O_NOFOLLOW));
|
||||
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, NULL));
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, ""));
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "."));
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "./../"), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "../"), expected);
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/"));
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/."));
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/./.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../"), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../.."), expected);
|
||||
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "./usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "../usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/./usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/.././usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../../usr"));
|
||||
|
||||
safe_close(fd);
|
||||
ASSERT_OK_ERRNO(fd = open("/../", O_CLOEXEC|O_PATH|O_DIRECTORY|O_NOFOLLOW));
|
||||
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, NULL), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, ""), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "./.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "../"), expected);
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/"));
|
||||
ASSERT_OK_POSITIVE(path_is_root_at(fd, "/."));
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/./.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/.."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../"), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../."), expected);
|
||||
ASSERT_OK_EQ(path_is_root_at(fd, "/../.."), expected);
|
||||
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "./usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "../usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/./usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/.././usr"));
|
||||
ASSERT_OK_ZERO(path_is_root_at(fd, "/../../usr"));
|
||||
}
|
||||
|
||||
TEST(path_is_root_at) {
|
||||
int r;
|
||||
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
r = detach_mount_namespace();
|
||||
if (r < 0)
|
||||
return (void) log_tests_skipped_errno(r, "Failed to detach mount namespace");
|
||||
|
||||
/* Interestingly, even after bind mount a path on "/", still "/" points to the previous root
|
||||
* directory, but "/../" points to the new root directory. Hence, path_is_root("/") is true but
|
||||
* path_is_root("/../") is false. Such spurious situation is resolved after chroot()ing to the new
|
||||
* root directory. */
|
||||
ASSERT_OK(mount_nofollow_verbose(LOG_DEBUG, "/", "/", NULL, MS_BIND|MS_REC, NULL));
|
||||
log_debug("/* %s: bind mount(\"/\", \"/\") */", __func__);
|
||||
test_path_is_root_at_one(false);
|
||||
|
||||
/* chroot("/") does not change anything. */
|
||||
ASSERT_OK_ERRNO(chroot("/"));
|
||||
log_debug("/* %s: chroot(\"/\") */", __func__);
|
||||
test_path_is_root_at_one(false);
|
||||
|
||||
/* chdir("/") neither change anything. */
|
||||
ASSERT_OK_ERRNO(chdir("/"));
|
||||
log_debug("/* %s: chdir(\"/\") */", __func__);
|
||||
test_path_is_root_at_one(false);
|
||||
|
||||
/* chdir("/../") neither change anything. */
|
||||
ASSERT_OK_ERRNO(chdir("/../"));
|
||||
log_debug("/* %s: chdir(\"/../\") */", __func__);
|
||||
test_path_is_root_at_one(false);
|
||||
|
||||
/* After chroot("/../"), both "/" and "/../" point to the new root directory. */
|
||||
ASSERT_OK_ERRNO(chroot("/../"));
|
||||
log_debug("/* %s: chroot(\"/../\") */", __func__);
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
/* chdir("/../") does not change anything. */
|
||||
ASSERT_OK_ERRNO(chdir("/../"));
|
||||
log_debug("/* %s: chdir(\"/../\") again */", __func__);
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
/* bind mounting to non-root directory has no problem, of course. */
|
||||
_cleanup_(rm_rf_physical_and_freep) char *tmp = NULL;
|
||||
ASSERT_OK(mkdtemp_malloc("/tmp/test-path_is_root-XXXXXX", &tmp));
|
||||
ASSERT_OK(mount_nofollow_verbose(LOG_DEBUG, "/", tmp, NULL, MS_BIND|MS_REC, NULL));
|
||||
log_debug("/* %s: bind mount(\"/\", \"%s\") */", __func__, tmp);
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
ASSERT_OK_ERRNO(chdir(tmp));
|
||||
log_debug("/* %s: chdir(\"%s\") */", __func__, tmp);
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
ASSERT_OK_ERRNO(chroot(tmp));
|
||||
log_debug("/* %s: chroot(\"%s\") */", __func__, tmp);
|
||||
test_path_is_root_at_one(true);
|
||||
|
||||
ASSERT_OK_ERRNO(chdir(tmp));
|
||||
log_debug("/* %s: chdir(\"%s\") again */", __func__, tmp);
|
||||
test_path_is_root_at_one(true);
|
||||
}
|
||||
|
||||
TEST(fds_are_same_mount) {
|
||||
_cleanup_close_ int fd1 = -EBADF, fd2 = -EBADF, fd3 = -EBADF, fd4 = -EBADF;
|
||||
|
||||
|
@ -351,7 +351,7 @@ create_session() {
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --autologin logind-test-user --noclear %I $TERM
|
||||
ExecStart=-/usr/sbin/agetty --autologin logind-test-user --noclear %I $TERM
|
||||
Restart=no
|
||||
EOF
|
||||
systemctl daemon-reload
|
||||
|
@ -20,7 +20,7 @@ Before=getty.target
|
||||
ConditionPathExists=/dev/console
|
||||
|
||||
[Service]
|
||||
ExecStart=-/sbin/agetty --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
|
||||
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
|
||||
Type=idle
|
||||
Restart=always
|
||||
UtmpIdentifier=cons
|
||||
|
@ -25,7 +25,7 @@ Conflicts=rescue.service
|
||||
Before=rescue.service
|
||||
|
||||
[Service]
|
||||
ExecStart=-/sbin/agetty --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
|
||||
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
|
||||
Type=idle
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
|
@ -34,7 +34,7 @@ Before=rescue.service
|
||||
ConditionPathExists=/dev/tty0
|
||||
|
||||
[Service]
|
||||
ExecStart=-/sbin/agetty --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
|
||||
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d - ${TERM}
|
||||
Type=idle
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
|
@ -30,7 +30,7 @@ Conflicts=rescue.service
|
||||
Before=rescue.service
|
||||
|
||||
[Service]
|
||||
ExecStart=-/sbin/agetty --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
|
||||
ExecStart=-{{AGETTY}} --noreset --noclear --issue-file=/etc/issue:/etc/issue.d:/run/issue.d:/usr/lib/issue.d --keep-baud 115200,57600,38400,9600 - ${TERM}
|
||||
Type=idle
|
||||
Restart=always
|
||||
UtmpIdentifier=%I
|
||||
|
Loading…
x
Reference in New Issue
Block a user