summaryrefslogtreecommitdiffstats
path: root/parameter/EnumParameterType.h
diff options
context:
space:
mode:
authorFrederic Boisnard <fredericx.boisnard@intel.com>2012-03-21 14:47:00 +0100
committerDavid Wagner <david.wagner@intel.com>2014-02-12 17:03:10 +0100
commit8b01852701d50869318663f568270f977d93dbdf (patch)
treeb26462e5ae9e3b7cb10a9ed0511da6c2a7e6cd75 /parameter/EnumParameterType.h
parent170f0a44b8309a954cd4802e85ac3dd6944a35fa (diff)
downloadexternal_parameter-framework-8b01852701d50869318663f568270f977d93dbdf.zip
external_parameter-framework-8b01852701d50869318663f568270f977d93dbdf.tar.gz
external_parameter-framework-8b01852701d50869318663f568270f977d93dbdf.tar.bz2
PFW: overflow not detected for int parameters
BZ: 26285 The following errors were not detected by the PFW when setting parameters of type (U)INT8, (U)INT16, (U)INT32: - When setting a value out of the int32 range (ex: 999999999999999), the strtol/strtoul functions return the value -1 which was then assumed correct by the PFW. Now the errno value is checked to ensure that no range error was encountered by strtol/strtoul. - When the input string does not contain any digits, the strtol/strtoul functions return 0 which was assumed correct by the PFW. Now the endptr argument is checked to make sure that at least a part of the string was parsed. In any case an error message is displayed and the original value is not updated. Made the change compliant to 64-bit OSes. Applied the same corrections to Enum and FixedPoint types. Change-Id: I135538def791208a6eb6143444a3fc30337137e1 Orig-Change-Id: I1519dbf798228a9be579aaf612f456d5eb1b41b5 Signed-off-by: Frederic Boisnard <fredericx.boisnard@intel.com> Reviewed-on: http://android.intel.com:8080/55443 Reviewed-by: Mendi, EduardoX <eduardox.mendi@intel.com> Tested-by: Mendi, EduardoX <eduardox.mendi@intel.com> Reviewed-by: buildbot <buildbot@intel.com> Tested-by: buildbot <buildbot@intel.com>
Diffstat (limited to 'parameter/EnumParameterType.h')
-rw-r--r--parameter/EnumParameterType.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/parameter/EnumParameterType.h b/parameter/EnumParameterType.h
index a195fea..f63e7ac 100644
--- a/parameter/EnumParameterType.h
+++ b/parameter/EnumParameterType.h
@@ -66,8 +66,8 @@ private:
// Literal - numerical conversions
bool getLiteral(int32_t iNumerical, string& strLiteral) const;
- bool getNumerical(const string& strLiteral, int32_t& iNumerical) const;
+ bool getNumerical(const string& strLiteral, int& iNumerical) const;
// Numerical validity
- bool isValid(int32_t iNumerical) const;
+ bool isValid(int iNumerical, CParameterAccessContext& parameterAccessContext) const;
};