1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-07 16:59:22 +00:00

qemurunner.py: support setting slirp host IP address

By default host side IP address is not set and qemu listens
on all IP addresses on the host machine which is not a good
idea when images have root login enabled without password.
It make sense to listen only on localhost IP address 127.0.0.1 using
config change like:

QB_SLIRP_OPT = "-netdev user,id=net0,hostfwd=tcp:127.0.0.1:2222-:22"

This config works for qemu itself, but breaks runqemu which tries to
parse the host side port number from qemu process command line arguments.
So change the runqemu side hostfwd parsing for port number to ignore
the host IP address field.

Reviewed-by: Quentin Schulz <foss+yocto@0leil.net>
(From OE-Core rev: bdbd52082eb26f418000eb4e424baae9babc272c)

Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mikko Rapeli
2022-11-14 17:50:37 +02:00
committed by Richard Purdie
parent 44bb88cc86
commit 248180ab2d
+2 -1
View File
@@ -401,7 +401,8 @@ class QemuRunner:
cmdline = re_control_char.sub(' ', cmdline)
try:
if self.use_slirp:
tcp_ports = cmdline.split("hostfwd=tcp::")[1]
tcp_ports = cmdline.split("hostfwd=tcp:")[1]
tcp_ports = tcp_ports.split(":")[1]
host_port = tcp_ports[:tcp_ports.find('-')]
self.ip = "localhost:%s" % host_port
else: