Commit: f4f8da8
GitHub URL: https://github.com/SCST-project/scst/commit/f4f8da8b4dd324467e76caca1ca6f647e99a49e9
Author: Brian Meagher
Date: 2024-01-30T10:55:25+03:00
Log Message:
-----------
scstadmin: Eliminate use of uninitialized value in numeric error
Using scstadmin to reload a configuration with fewer targets can result
in a "Use of uninitialized value in numeric ne" error. Rectify by adding
a check for the undefined value and handling the situation (by disabling
the target in question, unless the driver is copy_manager).
Modified Paths:
--------------
scstadmin/scstadmin.sysfs/scstadmin | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
===================================================================
diff --git a/scstadmin/scstadmin.sysfs/scstadmin b/scstadmin/scstadmin.sysfs/scstadmin
index 75d0ca8..84e539a 100755
--- a/scstadmin/scstadmin.sysfs/scstadmin
+++ b/scstadmin/scstadmin.sysfs/scstadmin
@@ -2831,10 +2831,17 @@ sub applyConfigEnableTargets {
my $t_attributes;
($t_attributes, $errorString) = $SCST->targetAttributes($driver, $target);
- if (defined($$t_attributes{'enabled'}) &&
- ($$t_attributes{'enabled'}->{'value'} != $$attributes{'enabled'})) {
- setTargetAttribute($driver, $target, 'enabled', $$attributes{'enabled'});
- $changes++;
+ if (defined($$attributes{'enabled'})) {
+ if (defined($$t_attributes{'enabled'}) &&
+ ($$t_attributes{'enabled'}->{'value'} != $$attributes{'enabled'})) {
+ setTargetAttribute($driver, $target, 'enabled', $$attributes{'enabled'});
+ $changes++;
+ }
+ } else {
+ if ($driver ne 'copy_manager') {
+ setTargetAttribute($driver, $target, 'enabled', 0);
+ $changes++;
+ }
}
}
}
|