@@ -154,8 +154,9 @@ main(int argc, char *argv[])
154
154
break ;
155
155
156
156
case 'e' :
157
+ errno = 0 ;
157
158
set_xid_epoch = strtoul (optarg , & endptr , 0 );
158
- if (endptr == optarg || * endptr != '\0' )
159
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
159
160
{
160
161
/*------
161
162
translator: the second %s is a command line argument (-e, etc) */
@@ -171,8 +172,9 @@ main(int argc, char *argv[])
171
172
break ;
172
173
173
174
case 'u' :
175
+ errno = 0 ;
174
176
set_oldest_xid = strtoul (optarg , & endptr , 0 );
175
- if (endptr == optarg || * endptr != '\0' )
177
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
176
178
{
177
179
pg_log_error ("invalid argument for option %s" , "-u" );
178
180
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -186,8 +188,9 @@ main(int argc, char *argv[])
186
188
break ;
187
189
188
190
case 'x' :
191
+ errno = 0 ;
189
192
set_xid = strtoul (optarg , & endptr , 0 );
190
- if (endptr == optarg || * endptr != '\0' )
193
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
191
194
{
192
195
pg_log_error ("invalid argument for option %s" , "-x" );
193
196
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -201,15 +204,16 @@ main(int argc, char *argv[])
201
204
break ;
202
205
203
206
case 'c' :
207
+ errno = 0 ;
204
208
set_oldest_commit_ts_xid = strtoul (optarg , & endptr , 0 );
205
- if (endptr == optarg || * endptr != ',' )
209
+ if (endptr == optarg || * endptr != ',' || errno != 0 )
206
210
{
207
211
pg_log_error ("invalid argument for option %s" , "-c" );
208
212
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
209
213
exit (1 );
210
214
}
211
215
set_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 )
213
217
{
214
218
pg_log_error ("invalid argument for option %s" , "-c" );
215
219
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -232,8 +236,9 @@ main(int argc, char *argv[])
232
236
break ;
233
237
234
238
case 'o' :
239
+ errno = 0 ;
235
240
set_oid = strtoul (optarg , & endptr , 0 );
236
- if (endptr == optarg || * endptr != '\0' )
241
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
237
242
{
238
243
pg_log_error ("invalid argument for option %s" , "-o" );
239
244
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -247,16 +252,17 @@ main(int argc, char *argv[])
247
252
break ;
248
253
249
254
case 'm' :
255
+ errno = 0 ;
250
256
set_mxid = strtoul (optarg , & endptr , 0 );
251
- if (endptr == optarg || * endptr != ',' )
257
+ if (endptr == optarg || * endptr != ',' || errno != 0 )
252
258
{
253
259
pg_log_error ("invalid argument for option %s" , "-m" );
254
260
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
255
261
exit (1 );
256
262
}
257
263
258
264
set_oldestmxid = strtoul (endptr + 1 , & endptr2 , 0 );
259
- if (endptr2 == endptr + 1 || * endptr2 != '\0' )
265
+ if (endptr2 == endptr + 1 || * endptr2 != '\0' || errno != 0 )
260
266
{
261
267
pg_log_error ("invalid argument for option %s" , "-m" );
262
268
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -280,8 +286,9 @@ main(int argc, char *argv[])
280
286
break ;
281
287
282
288
case 'O' :
289
+ errno = 0 ;
283
290
set_mxoff = strtoul (optarg , & endptr , 0 );
284
- if (endptr == optarg || * endptr != '\0' )
291
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
285
292
{
286
293
pg_log_error ("invalid argument for option %s" , "-O" );
287
294
fprintf (stderr , _ ("Try \"%s --help\" for more information.\n" ), progname );
@@ -310,8 +317,9 @@ main(int argc, char *argv[])
310
317
break ;
311
318
312
319
case 1 :
320
+ errno = 0 ;
313
321
set_wal_segsize = strtol (optarg , & endptr , 10 ) * 1024 * 1024 ;
314
- if (endptr == optarg || * endptr != '\0' )
322
+ if (endptr == optarg || * endptr != '\0' || errno != 0 )
315
323
{
316
324
pg_log_error ("argument of --wal-segsize must be a number" );
317
325
exit (1 );
0 commit comments