From 5ea0cf813f83732f35192bcdedf6295565599d1b Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 10 Oct 2013 15:30:31 +0000 Subject: [PATCH] scstadmin, SCST.pm: Make argument checking more strict git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5066 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-0.9.10/lib/SCST/SCST.pm | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/scstadmin/scstadmin.sysfs/scst-0.9.10/lib/SCST/SCST.pm b/scstadmin/scstadmin.sysfs/scst-0.9.10/lib/SCST/SCST.pm index 7af874d0f..af0fe5226 100644 --- a/scstadmin/scstadmin.sysfs/scst-0.9.10/lib/SCST/SCST.pm +++ b/scstadmin/scstadmin.sysfs/scst-0.9.10/lib/SCST/SCST.pm @@ -1038,6 +1038,9 @@ sub addDriverDynamicAttribute { my $attribute = shift; my $value = shift; + return SCST_C_DRV_ADDATTR_FAIL + if (!defined($driver) || !defined($attribute) || !defined($value)); + my $rc = $self->driverExists($driver); return SCST_C_DRV_NO_DRIVER if (!$rc); return $rc if ($rc > 1); @@ -1082,6 +1085,9 @@ sub removeDriverDynamicAttribute { my $attribute = shift; my $value = shift; + return SCST_C_DRV_REMATTR_FAIL + if (!defined($driver) || !defined($attribute) || !defined($value)); + my $rc = $self->driverExists($driver); return SCST_C_DRV_NO_DRIVER if (!$rc); return $rc if ($rc > 1); @@ -1253,6 +1259,8 @@ sub targetDynamicAttributes { my %attributes; my $available; + return undef if (!defined($driver)); + if ($self->driverExists($driver) != TRUE) { $self->{'err_string'} = "targetDynamicAttributes(): Driver '$driver' ". "is not available"; @@ -1334,6 +1342,10 @@ sub addTargetDynamicAttribute { my $attribute = shift; my $value = shift; + return SCST_C_TGT_ADDATTR_FAIL + if (!defined($driver) || !defined($target) || + !defined($attribute) || !defined($value)); + my $rc = $self->driverExists($driver); return SCST_C_DRV_NO_DRIVER if (!$rc); return $rc if ($rc > 1); @@ -1382,6 +1394,10 @@ sub removeTargetDynamicAttribute { my $attribute = shift; my $value = shift; + return SCST_C_TGT_REMATTR_FAIL + if (!defined($driver) || !defined($target) || + !defined($attribute) || !defined($value)); + my $rc = $self->driverExists($driver); return SCST_C_DRV_NO_DRIVER if (!$rc); return $rc if ($rc > 1); @@ -1503,7 +1519,7 @@ sub groupExists { my $target = shift; my $group = shift; - return FALSE if (!defined($group)); + return FALSE if (!defined($driver) || !defined($target) || !defined($group)); my $rc = $self->targetExists($driver, $target); @@ -1528,7 +1544,8 @@ sub initiatorExists { my $group = shift; my $initiator = shift; - return FALSE if (!defined($initiator)); + return FALSE if (!defined($driver) || !defined($target) || + !defined($group) || !defined($initiator)); my $rc = $self->groupExists($driver, $target, $group); @@ -1553,7 +1570,8 @@ sub lunExists { my $lun = shift; my $group = shift; - return FALSE if (!defined($lun)); + return FALSE if (!defined($driver) || !defined($target) || + !defined($lun)); my $rc = $self->driverExists($driver); @@ -3886,6 +3904,9 @@ sub setTargetGroupAttribute { my $attribute = shift; my $value = shift; + return TRUE if (!defined($group) || !defined($tgroup) || + !defined($attribute) || !defined($value)); + my $rc = $self->deviceGroupExists($group); return SCST_C_DEV_GRP_NO_GROUP if (!$rc); return $rc if ($rc > 1); @@ -3929,6 +3950,10 @@ sub setTargetGroupTargetAttribute { my $attribute = shift; my $value = shift; + return TRUE if (!defined($group) || !defined($tgroup) || + !defined($tgt) || !defined($attribute) || + !defined($value)); + my $rc = $self->deviceGroupExists($group); return SCST_C_DEV_GRP_NO_GROUP if (!$rc); return $rc if ($rc > 1); @@ -3941,8 +3966,6 @@ sub setTargetGroupTargetAttribute { return SCST_C_TGRP_NO_TGT if (!$rc); return $rc if ($rc > 1); - return TRUE if (!defined($attribute) || !defined($value)); - my $attributes = $self->targetGroupTargetAttributes($group, $tgroup, $tgt); return SCST_C_TGRP_TGT_BAD_ATTR if (!defined($$attributes{$attribute}));