diff options
author | drahn <drahn@openbsd.org> | 2009-12-08 21:10:24 +0000 |
---|---|---|
committer | drahn <drahn@openbsd.org> | 2009-12-08 21:10:24 +0000 |
commit | 8521085ccbc68c6e46c309ca4685e4e1a68bfc28 (patch) | |
tree | d2ce472cf7b46f5deca253d6bb1c367e33916458 /usr.sbin/crunchgen | |
parent | Base the revision string in the INQUIRY info on the version of the VIO protocol (diff) | |
download | wireguard-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.c | 9 |
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; |