From 51aef3c1d61bc4fd095a51c989c3957692a2a172 Mon Sep 17 00:00:00 2001 From: chrislusf Date: Wed, 3 Dec 2025 19:39:15 -0800 Subject: fix: add nil checks for AccessMode to prevent panic Address CodeRabbit review feedback - add defensive nil checks for GetVolumeCapability() and GetAccessMode() in both isPublishVolumeReadOnly and isVolumeReadOnly to prevent potential nil pointer dereference. --- pkg/driver/nodeserver.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/driver/nodeserver.go b/pkg/driver/nodeserver.go index b9059fe..95b556f 100644 --- a/pkg/driver/nodeserver.go +++ b/pkg/driver/nodeserver.go @@ -195,7 +195,11 @@ func isPublishVolumeReadOnly(req *csi.NodePublishVolumeRequest) bool { if req.GetReadonly() { return true } - return isReadOnlyAccessMode(req.GetVolumeCapability().GetAccessMode().Mode) + cap := req.GetVolumeCapability() + if cap == nil || cap.GetAccessMode() == nil { + return false + } + return isReadOnlyAccessMode(cap.GetAccessMode().Mode) } func (ns *NodeServer) NodeUnpublishVolume(ctx context.Context, req *csi.NodeUnpublishVolumeRequest) (*csi.NodeUnpublishVolumeResponse, error) { @@ -400,5 +404,9 @@ func isReadOnlyAccessMode(mode csi.VolumeCapability_AccessMode_Mode) bool { } func isVolumeReadOnly(req *csi.NodeStageVolumeRequest) bool { - return isReadOnlyAccessMode(req.GetVolumeCapability().GetAccessMode().Mode) + cap := req.GetVolumeCapability() + if cap == nil || cap.GetAccessMode() == nil { + return false + } + return isReadOnlyAccessMode(cap.GetAccessMode().Mode) } -- cgit v1.2.3