Skip to content

Commit eaa2896

Browse files
committed
Fix mountinfo parsing to handle entries with 10 fields
Signed-off-by: Trey Dockendorf <[email protected]>
1 parent 0f5e4f3 commit eaa2896

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

mountinfo.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func parseMountInfoString(mountString string) (*MountInfo, error) {
7777

7878
mountInfo := strings.Split(mountString, " ")
7979
mountInfoLength := len(mountInfo)
80-
if mountInfoLength < 11 {
80+
if mountInfoLength < 10 {
8181
return nil, fmt.Errorf("couldn't find enough fields in mount string: %s", mountString)
8282
}
8383

mountinfo_test.go

+32
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,38 @@ func TestMountInfo(t *testing.T) {
131131
},
132132
invalid: false,
133133
},
134+
{
135+
name: "Docker overlay with 10 fields (no optional fields)",
136+
s: "137 45 253:2 /lib/docker/overlay2 /var/lib/docker/overlay2 rw,relatime - ext4 /dev/mapper/vg0-lv_var rw,data=ordered",
137+
mount: &MountInfo{
138+
MountID: 137,
139+
ParentID: 45,
140+
MajorMinorVer: "253:2",
141+
Root: "/lib/docker/overlay2",
142+
MountPoint: "/var/lib/docker/overlay2",
143+
Options: map[string]string{"rw": "", "relatime": ""},
144+
OptionalFields: map[string]string{},
145+
FSType: "ext4",
146+
Source: "/dev/mapper/vg0-lv_var",
147+
SuperOptions: map[string]string{"rw": "", "data": "ordered"},
148+
},
149+
},
150+
{
151+
name: "bind chroot bind mount with 10 fields (no optional fields)",
152+
s: "157 47 253:2 /etc/named /var/named/chroot/etc/named rw,relatime - ext4 /dev/mapper/vg0-lv_root rw,data=ordered",
153+
mount: &MountInfo{
154+
MountID: 157,
155+
ParentID: 47,
156+
MajorMinorVer: "253:2",
157+
Root: "/etc/named",
158+
MountPoint: "/var/named/chroot/etc/named",
159+
Options: map[string]string{"rw": "", "relatime": ""},
160+
OptionalFields: map[string]string{},
161+
FSType: "ext4",
162+
Source: "/dev/mapper/vg0-lv_root",
163+
SuperOptions: map[string]string{"rw": "", "data": "ordered"},
164+
},
165+
},
134166
}
135167

136168
for i, test := range tests {

0 commit comments

Comments
 (0)