summaryrefslogtreecommitdiffstats
path: root/lib/libmt
diff options
context:
space:
mode:
authorken <ken@FreeBSD.org>2015-02-25 04:30:23 +0000
committerken <ken@FreeBSD.org>2015-02-25 04:30:23 +0000
commit917c14a976570c7f0bbdb0914cb7fdeb6f9f19e7 (patch)
tree0dee7b276c03c17fd6f8c18d4ff9670eb9376e7d /lib/libmt
parent1a0d38818e867b19f837592c481c2f345c6acd49 (diff)
downloadFreeBSD-src-917c14a976570c7f0bbdb0914cb7fdeb6f9f19e7.zip
FreeBSD-src-917c14a976570c7f0bbdb0914cb7fdeb6f9f19e7.tar.gz
Fix several problems found by Coverity.
lib/libmt/mtlib.c: In mt_start_element(), make sure we don't overflow the cur_sb array. CID 1271325 usr.bin/mt/mt.c: In main(), bzero the mt_com structure so that we aren't using any uninitialized stack variables. CID 1271319 In mt_param(), only allow one -s and one -p argument. This will prevent a memory leak caused by overwriting the param_name and/or param_value variables. CID 1271320 and CID 1271322 To make things simpler in mt_param(), make sure there there is only one exit path for the function. Make sure the arguments are explicitly freed. Sponsored by: Spectra Logic Pointed out by: emaste MFC after: 1 month
Diffstat (limited to 'lib/libmt')
-rw-r--r--lib/libmt/mtlib.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/libmt/mtlib.c b/lib/libmt/mtlib.c
index 2329fa6..ad73381 100644
--- a/lib/libmt/mtlib.c
+++ b/lib/libmt/mtlib.c
@@ -68,7 +68,7 @@ mt_start_element(void *user_data, const char *name, const char **attr)
return;
mtinfo->level++;
- if ((u_int)mtinfo->level > (sizeof(mtinfo->cur_sb) /
+ if ((u_int)mtinfo->level >= (sizeof(mtinfo->cur_sb) /
sizeof(mtinfo->cur_sb[0]))) {
mtinfo->error = 1;
snprintf(mtinfo->error_str, sizeof(mtinfo->error_str),
OpenPOWER on IntegriCloud