mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
More carefully validate xlog location string inputs
Now that we have validate_xlog_location, call it from the previously existing functions taking xlog locatoins as a string input. Suggested by Fujii Masao
This commit is contained in:
parent
bc5ac36865
commit
141b89826d
@ -30,6 +30,10 @@
|
|||||||
#include "utils/guc.h"
|
#include "utils/guc.h"
|
||||||
#include "utils/timestamp.h"
|
#include "utils/timestamp.h"
|
||||||
|
|
||||||
|
|
||||||
|
static void validate_xlog_location(char *str);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* pg_start_backup: set up for taking an on-line backup dump
|
* pg_start_backup: set up for taking an on-line backup dump
|
||||||
*
|
*
|
||||||
@ -289,6 +293,8 @@ pg_xlogfile_name_offset(PG_FUNCTION_ARGS)
|
|||||||
*/
|
*/
|
||||||
locationstr = text_to_cstring(location);
|
locationstr = text_to_cstring(location);
|
||||||
|
|
||||||
|
validate_xlog_location(locationstr);
|
||||||
|
|
||||||
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
|
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
@ -361,6 +367,8 @@ pg_xlogfile_name(PG_FUNCTION_ARGS)
|
|||||||
|
|
||||||
locationstr = text_to_cstring(location);
|
locationstr = text_to_cstring(location);
|
||||||
|
|
||||||
|
validate_xlog_location(locationstr);
|
||||||
|
|
||||||
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
|
if (sscanf(locationstr, "%X/%X", &uxlogid, &uxrecoff) != 2)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user