[lxc-devel] [lxd/master] forknet: add "--" to not misinterpret negative integers as flags
brauner on Github
lxc-bot at linuxcontainers.org
Tue May 26 13:20:58 UTC 2020
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 379 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20200526/997cbe6c/attachment.bin>
-------------- next part --------------
From d40657763449bb1ebe9a7f12fd50f88f61367ee5 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brauner at ubuntu.com>
Date: Tue, 26 May 2020 15:19:18 +0200
Subject: [PATCH] forknet: add "--" to not misinterpret negative integers as
flags
Closes #7429.
Signed-off-by: Christian Brauner <christian.brauner at ubuntu.com>
---
lxd/instance/drivers/driver_lxc.go | 9 +++++----
lxd/main_forknet.go | 9 ++++++---
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/lxd/instance/drivers/driver_lxc.go b/lxd/instance/drivers/driver_lxc.go
index 1b8208f7d8..0fb66b1785 100644
--- a/lxd/instance/drivers/driver_lxc.go
+++ b/lxd/instance/drivers/driver_lxc.go
@@ -1844,14 +1844,15 @@ func (c *lxc) DeviceEventHandler(runConf *deviceConfig.RunConfig) error {
for _, eventParts := range runConf.Uevents {
ueventArray := make([]string, 4)
ueventArray[0] = "forkuevent"
- ueventArray[1] = "inject"
- ueventArray[2] = fmt.Sprintf("%d", c.InitPID())
- ueventArray[3] = fmt.Sprintf("%d", pidFdNr)
+ ueventArray[1] = "--"
+ ueventArray[2] = "inject"
+ ueventArray[3] = fmt.Sprintf("%d", c.InitPID())
+ ueventArray[4] = fmt.Sprintf("%d", pidFdNr)
length := 0
for _, part := range eventParts {
length = length + len(part) + 1
}
- ueventArray[4] = fmt.Sprintf("%d", length)
+ ueventArray[5] = fmt.Sprintf("%d", length)
ueventArray = append(ueventArray, eventParts...)
_, _, err := shared.RunCommandSplit(nil, []*os.File{pidFd}, c.state.OS.ExecPath, ueventArray...)
if err != nil {
diff --git a/lxd/main_forknet.go b/lxd/main_forknet.go
index f69e70c0a9..5b8eac5a29 100644
--- a/lxd/main_forknet.go
+++ b/lxd/main_forknet.go
@@ -57,6 +57,9 @@ void forknet(void)
return;
}
+ // skip "--"
+ advance_arg(true);
+
// Get the pid
cur = advance_arg(false);
if (cur == NULL || (strcmp(cur, "--help") == 0 || strcmp(cur, "--version") == 0 || strcmp(cur, "-h") == 0)) {
@@ -140,9 +143,9 @@ func (c *cmdForknet) RunInfo(cmd *cobra.Command, args []string) error {
}
func (c *cmdForknet) RunDetach(cmd *cobra.Command, args []string) error {
- lxdPID := args[1]
- ifName := args[2]
- hostName := args[3]
+ lxdPID := args[2]
+ ifName := args[3]
+ hostName := args[4]
if lxdPID == "" {
return fmt.Errorf("LXD PID argument is required")
More information about the lxc-devel
mailing list