| 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; | 
| } | 
|  |