summaryrefslogtreecommitdiff
path: root/src/ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ops.c')
-rw-r--r--src/ops.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ops.c b/src/ops.c
index 0f42dea00..5c58e523f 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -396,7 +396,10 @@ shift_block(oparg_T *oap, int amount)
return;
/* total is number of screen columns to be inserted/removed */
- total = amount * p_sw;
+ total = (int)((unsigned)amount * (unsigned)p_sw);
+ if ((total / p_sw) != amount)
+ return; /* multiplication overflow */
+
oldp = ml_get_curline();
if (!left)