aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authorchrislusf <chris.lu@gmail.com>2025-12-03 19:39:15 -0800
committerChris Lu <chrislusf@users.noreply.github.com>2025-12-03 20:52:27 -0800
commitdfad8b9747b114c863838cf48223fcebe3049890 (patch)
tree046136e7f909eda59ed62a737a00ef685447ebf9 /pkg
parent05ac88f67723f1a6ce60543413f3ae59d2e85654 (diff)
downloadseaweedfs-csi-driver-dfad8b9747b114c863838cf48223fcebe3049890.tar.xz
seaweedfs-csi-driver-dfad8b9747b114c863838cf48223fcebe3049890.zip
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.
Diffstat (limited to 'pkg')
-rw-r--r--pkg/driver/nodeserver.go12
1 files 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)
}