New upstream version 2.3.3
This commit is contained in:
parent
21323d25dd
commit
e7bdd1c6c6
49 changed files with 13068 additions and 34075 deletions
|
@ -69,7 +69,6 @@ int process_arguments (int, char **);
|
|||
int validate_arguments (void);
|
||||
void print_usage (void);
|
||||
void print_help (void);
|
||||
int is_pg_dbname (char *);
|
||||
int is_pg_logname (char *);
|
||||
int do_query (PGconn *, char *);
|
||||
|
||||
|
@ -347,10 +346,10 @@ process_arguments (int argc, char **argv)
|
|||
pgport = optarg;
|
||||
break;
|
||||
case 'd': /* database name */
|
||||
if (!is_pg_dbname (optarg)) /* checks length and valid chars */
|
||||
usage2 (_("Database name is not valid"), optarg);
|
||||
else /* we know length, and know optarg is terminated, so us strcpy */
|
||||
snprintf(dbName, NAMEDATALEN, "%s", optarg);
|
||||
if (strlen(optarg) >= NAMEDATALEN) {
|
||||
usage2 (_("Database name exceeds the maximum length"), optarg);
|
||||
}
|
||||
snprintf(dbName, NAMEDATALEN, "%s", optarg);
|
||||
break;
|
||||
case 'l': /* login name */
|
||||
if (!is_pg_logname (optarg))
|
||||
|
@ -414,45 +413,6 @@ validate_arguments ()
|
|||
return OK;
|
||||
}
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@@-
|
||||
<sect3>
|
||||
<title>is_pg_dbname</title>
|
||||
|
||||
<para>&PROTO_is_pg_dbname;</para>
|
||||
|
||||
<para>Given a database name, this function returns TRUE if the string
|
||||
is a valid PostgreSQL database name, and returns false if it is
|
||||
not.</para>
|
||||
|
||||
<para>Valid PostgreSQL database names are less than &NAMEDATALEN;
|
||||
characters long and consist of letters, numbers, and underscores. The
|
||||
first character cannot be a number, however.</para>
|
||||
|
||||
</sect3>
|
||||
-@@
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
|
||||
int
|
||||
is_pg_dbname (char *dbname)
|
||||
{
|
||||
char txt[NAMEDATALEN];
|
||||
char tmp[NAMEDATALEN];
|
||||
if (strlen (dbname) > NAMEDATALEN - 1)
|
||||
return (FALSE);
|
||||
strncpy (txt, dbname, NAMEDATALEN - 1);
|
||||
txt[NAMEDATALEN - 1] = 0;
|
||||
if (sscanf (txt, "%[_a-zA-Z]%[^_a-zA-Z0-9-]", tmp, tmp) == 1)
|
||||
return (TRUE);
|
||||
if (sscanf (txt, "%[_a-zA-Z]%[_a-zA-Z0-9-]%[^_a-zA-Z0-9-]", tmp, tmp, tmp) ==
|
||||
2) return (TRUE);
|
||||
return (FALSE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
the tango program should eventually create an entity here based on the
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue