summaryrefslogtreecommitdiffstats
path: root/usr.sbin/crunchgen
diff options
context:
space:
mode:
authordrahn <drahn@openbsd.org>2009-12-08 21:10:24 +0000
committerdrahn <drahn@openbsd.org>2009-12-08 21:10:24 +0000
commit8521085ccbc68c6e46c309ca4685e4e1a68bfc28 (patch)
treed2ce472cf7b46f5deca253d6bb1c367e33916458 /usr.sbin/crunchgen
parentBase the revision string in the INQUIRY info on the version of the VIO protocol (diff)
downloadwireguard-openbsd-8521085ccbc68c6e46c309ca4685e4e1a68bfc28.tar.xz
wireguard-openbsd-8521085ccbc68c6e46c309ca4685e4e1a68bfc28.zip
Fix overflow bug found by Holger Mikolon, thanks.
committed slightly different fix.
Diffstat (limited to 'usr.sbin/crunchgen')
-rw-r--r--usr.sbin/crunchgen/mangle.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/usr.sbin/crunchgen/mangle.c b/usr.sbin/crunchgen/mangle.c
index a9bb721853e..513bb65c99f 100644
--- a/usr.sbin/crunchgen/mangle.c
+++ b/usr.sbin/crunchgen/mangle.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mangle.c,v 1.1 2009/12/04 04:59:48 drahn Exp $ */
+/* $OpenBSD: mangle.c,v 1.2 2009/12/08 21:10:24 drahn Exp $ */
/*
* Copyright (c) 2009 Dale Rahn.
* All rights reserved.
@@ -130,10 +130,13 @@ mangle_str(char *str)
int keyval;
len = strlen(str);
+ if (len == 0)
+ return; /* nothing to mangle */
+
if (len > MAX_KEY_STR_LEN)
- len = MAX_KEY_STR_LEN-1;
+ len = MAX_KEY_STR_LEN;
- keyval = key[len]++;
+ keyval = key[len-1]++;
for (i = 0; i < len; i++) {
int idx = keyval % NUM_KEYS;