summaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authorjenglish <jenglish@flightlab.com>2004-06-16 20:03:18 (GMT)
committerjenglish <jenglish@flightlab.com>2004-06-16 20:03:18 (GMT)
commitc5b74b100d335256f82be758f49ce8425fe2ac18 (patch)
treed316493e03f85b97a1a55f3bf4a198db5c79bfbc /unix
parent55c614a8ed08c8dcb23312b958ed1756d9b9fd17 (diff)
downloadtk-c5b74b100d335256f82be758f49ce8425fe2ac18.zip
tk-c5b74b100d335256f82be758f49ce8425fe2ac18.tar.gz
tk-c5b74b100d335256f82be758f49ce8425fe2ac18.tar.bz2
Fix for #742882 "Potential division by zero in gridded wm geometry"
Diffstat (limited to 'unix')
-rw-r--r--unix/tkUnixWm.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/unix/tkUnixWm.c b/unix/tkUnixWm.c
index 94162bd..c9f2760 100644
--- a/unix/tkUnixWm.c
+++ b/unix/tkUnixWm.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkUnixWm.c,v 1.41 2004/04/04 20:08:39 jenglish Exp $
+ * RCS: @(#) $Id: tkUnixWm.c,v 1.42 2004/06/16 20:03:19 jenglish Exp $
*/
#include "tkPort.h"
@@ -1729,12 +1729,12 @@ WmGridCmd(tkwin, winPtr, interp, objc, objv)
Tcl_SetResult(interp, "baseHeight can't be < 0", TCL_STATIC);
return TCL_ERROR;
}
- if (widthInc < 0) {
- Tcl_SetResult(interp, "widthInc can't be < 0", TCL_STATIC);
+ if (widthInc <= 0) {
+ Tcl_SetResult(interp, "widthInc can't be <= 0", TCL_STATIC);
return TCL_ERROR;
}
- if (heightInc < 0) {
- Tcl_SetResult(interp, "heightInc can't be < 0", TCL_STATIC);
+ if (heightInc <= 0) {
+ Tcl_SetResult(interp, "heightInc can't be <= 0", TCL_STATIC);
return TCL_ERROR;
}
Tk_SetGrid((Tk_Window) winPtr, reqWidth, reqHeight, widthInc,
@@ -3225,6 +3225,16 @@ Tk_SetGrid(tkwin, reqWidth, reqHeight, widthInc, heightInc)
register WmInfo *wmPtr;
/*
+ * Ensure widthInc and heightInc are greater than 0
+ */
+ if (widthInc <= 0) {
+ widthInc = 1;
+ }
+ if (heightInc <= 0) {
+ heightInc = 1;
+ }
+
+ /*
* Find the top-level window for tkwin, plus the window manager
* information.
*/