Index: gdb/findcmd.c |
diff --git a/gdb/findcmd.c b/gdb/findcmd.c |
index 3fce2695919c096297bcb5d6df77f7c8f18bc33d..68184aa27e981cc0e675fa33e560ea0127071eb9 100644 |
--- a/gdb/findcmd.c |
+++ b/gdb/findcmd.c |
@@ -170,6 +170,7 @@ parse_find_args (char *args, ULONGEST *max_countp, |
{ |
LONGEST x; |
int val_bytes; |
+ ULONGEST pattern_buf_size_need; |
while (isspace (*s)) |
++s; |
@@ -179,12 +180,13 @@ parse_find_args (char *args, ULONGEST *max_countp, |
/* Keep it simple and assume size == 'g' when watching for when we |
need to grow the pattern buf. */ |
- if ((pattern_buf_end - pattern_buf + max (val_bytes, sizeof (int64_t))) |
- > pattern_buf_size) |
+ pattern_buf_size_need = (pattern_buf_end - pattern_buf |
+ + max (val_bytes, sizeof (int64_t))); |
+ if (pattern_buf_size_need > pattern_buf_size) |
{ |
size_t current_offset = pattern_buf_end - pattern_buf; |
- pattern_buf_size *= 2; |
+ pattern_buf_size = pattern_buf_size_need * 2; |
pattern_buf = xrealloc (pattern_buf, pattern_buf_size); |
pattern_buf_end = pattern_buf + current_offset; |
} |