summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorgroeck <groeck@7894878c-1315-0410-8ee3-d5d059ff63e0>2011-02-15 16:08:13 +0000
committergroeck <groeck@7894878c-1315-0410-8ee3-d5d059ff63e0>2011-02-15 16:08:13 +0000
commitca17d970787ff540813d8ba89831f223d0940551 (patch)
tree549c705da4538067024a4ea6b399c3bac1968fd1 /tools
parent87569d8046df580bf30d10482be98fc73874d1b9 (diff)
downloadi2c-tools-ca17d970787ff540813d8ba89831f223d0940551.tar.gz
i2cset: Check number of arguments for block data writes
git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@5922 7894878c-1315-0410-8ee3-d5d059ff63e0
Diffstat (limited to 'tools')
-rw-r--r--tools/i2cset.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/i2cset.c b/tools/i2cset.c
index e47c9d4..e835465 100644
--- a/tools/i2cset.c
+++ b/tools/i2cset.c
@@ -223,7 +223,11 @@ int main(int argc, char *argv[])
fprintf(stderr, "Error: PEC not supported for I2C block writes!\n");
help();
}
- for (len = 0; len < (int)sizeof(block) && len + flags + 5 < argc; len++) {
+ if (argc > (int)sizeof(block) + flags + 5) {
+ fprintf(stderr, "Error: Too many arguments!\n");
+ help();
+ }
+ for (len = 0; len + flags + 5 < argc; len++) {
value = strtol(argv[flags + len + 4], &end, 0);
if (*end || value < 0 || value > 0xff) {
fprintf(stderr, "Error: Block data value invalid!\n");