From 7dada6d49288379e7e254b4aa9b62b3db91a05aa Mon Sep 17 00:00:00 2001
From: Riyad Preukschas <riyad@informatik.uni-bremen.de>
Date: Fri, 7 Jan 2022 10:52:34 +0100
Subject: [PATCH] Prevent double decoding of storage options

[NO NEW TESTS NEEDED] see #11991

Signed-off-by: Riyad Preukschas <riyad@informatik.uni-bremen.de>
---
 libpod/container_internal.go | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index 2d12a90d1f..33bb35a0bf 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -447,17 +447,8 @@ func (c *Container) setupStorage(ctx context.Context) error {
 		LabelOpts: c.config.LabelOpts,
 	}
 
-	nopts := len(c.config.StorageOpts)
-	if nopts > 0 {
-		options.StorageOpt = make(map[string]string, nopts)
-		for _, opt := range c.config.StorageOpts {
-			split2 := strings.SplitN(opt, "=", 2)
-			if len(split2) > 2 {
-				return errors.Wrapf(define.ErrInvalidArg, "invalid storage options %q for %s", opt, c.ID())
-			}
-			options.StorageOpt[split2[0]] = split2[1]
-		}
-	}
+	options.StorageOpt = c.config.StorageOpts
+
 	if c.restoreFromCheckpoint && c.config.ProcessLabel != "" && c.config.MountLabel != "" {
 		// If restoring from a checkpoint, the root file-system needs
 		// to be mounted with the same SELinux labels as it was mounted