@@ -154,8 +154,9 @@ main(int argc, char *argv[])
154154break ;
155155
156156case 'e' :
157+ errno = 0 ;
157158set_xid_epoch = strtoul (optarg ,& endptr ,0 );
158- if (endptr == optarg || * endptr != '\0' )
159+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
159160{
160161/*------
161162 translator: the second %s is a command line argument (-e, etc) */
@@ -171,8 +172,9 @@ main(int argc, char *argv[])
171172break ;
172173
173174case 'u' :
175+ errno = 0 ;
174176set_oldest_xid = strtoul (optarg ,& endptr ,0 );
175- if (endptr == optarg || * endptr != '\0' )
177+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
176178{
177179pg_log_error ("invalid argument for option %s" ,"-u" );
178180fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -186,8 +188,9 @@ main(int argc, char *argv[])
186188break ;
187189
188190case 'x' :
191+ errno = 0 ;
189192set_xid = strtoul (optarg ,& endptr ,0 );
190- if (endptr == optarg || * endptr != '\0' )
193+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
191194{
192195pg_log_error ("invalid argument for option %s" ,"-x" );
193196fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -201,15 +204,16 @@ main(int argc, char *argv[])
201204break ;
202205
203206case 'c' :
207+ errno = 0 ;
204208set_oldest_commit_ts_xid = strtoul (optarg ,& endptr ,0 );
205- if (endptr == optarg || * endptr != ',' )
209+ if (endptr == optarg || * endptr != ',' || errno != 0 )
206210{
207211pg_log_error ("invalid argument for option %s" ,"-c" );
208212fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
209213exit (1 );
210214}
211215set_newest_commit_ts_xid = strtoul (endptr + 1 ,& endptr2 ,0 );
212- if (endptr2 == endptr + 1 || * endptr2 != '\0' )
216+ if (endptr2 == endptr + 1 || * endptr2 != '\0' || errno != 0 )
213217{
214218pg_log_error ("invalid argument for option %s" ,"-c" );
215219fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -232,8 +236,9 @@ main(int argc, char *argv[])
232236break ;
233237
234238case 'o' :
239+ errno = 0 ;
235240set_oid = strtoul (optarg ,& endptr ,0 );
236- if (endptr == optarg || * endptr != '\0' )
241+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
237242{
238243pg_log_error ("invalid argument for option %s" ,"-o" );
239244fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -247,16 +252,17 @@ main(int argc, char *argv[])
247252break ;
248253
249254case 'm' :
255+ errno = 0 ;
250256set_mxid = strtoul (optarg ,& endptr ,0 );
251- if (endptr == optarg || * endptr != ',' )
257+ if (endptr == optarg || * endptr != ',' || errno != 0 )
252258{
253259pg_log_error ("invalid argument for option %s" ,"-m" );
254260fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
255261exit (1 );
256262}
257263
258264set_oldestmxid = strtoul (endptr + 1 ,& endptr2 ,0 );
259- if (endptr2 == endptr + 1 || * endptr2 != '\0' )
265+ if (endptr2 == endptr + 1 || * endptr2 != '\0' || errno != 0 )
260266{
261267pg_log_error ("invalid argument for option %s" ,"-m" );
262268fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -280,8 +286,9 @@ main(int argc, char *argv[])
280286break ;
281287
282288case 'O' :
289+ errno = 0 ;
283290set_mxoff = strtoul (optarg ,& endptr ,0 );
284- if (endptr == optarg || * endptr != '\0' )
291+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
285292{
286293pg_log_error ("invalid argument for option %s" ,"-O" );
287294fprintf (stderr ,_ ("Try \"%s --help\" for more information.\n" ),progname );
@@ -310,8 +317,9 @@ main(int argc, char *argv[])
310317break ;
311318
312319case 1 :
320+ errno = 0 ;
313321set_wal_segsize = strtol (optarg ,& endptr ,10 )* 1024 * 1024 ;
314- if (endptr == optarg || * endptr != '\0' )
322+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
315323{
316324pg_log_error ("argument of --wal-segsize must be a number" );
317325exit (1 );