1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-13 07:41:39 +03:00

Remove use of sscanf in pg_upgrade, and add C comment to pg_dump

Per report from Jackie Chang
This commit is contained in:
Bruce Momjian
2014-02-15 11:50:56 -05:00
parent a0d8947acb
commit 32be1c8e90
2 changed files with 4 additions and 2 deletions

View File

@ -453,9 +453,10 @@ get_sock_dir(ClusterInfo *cluster, bool live_check)
sscanf(line, "%hu", &old_cluster.port); sscanf(line, "%hu", &old_cluster.port);
if (lineno == LOCK_FILE_LINE_SOCKET_DIR) if (lineno == LOCK_FILE_LINE_SOCKET_DIR)
{ {
cluster->sockdir = pg_malloc(MAXPGPATH); cluster->sockdir = pg_strdup(line);
/* strip off newline */ /* strip off newline */
sscanf(line, "%s\n", cluster->sockdir); if (strchr(cluster->sockdir, '\n') != NULL)
*strchr(cluster->sockdir, '\n') = '\0';
} }
} }
fclose(fp); fclose(fp);

View File

@ -452,6 +452,7 @@ _LoadBlobs(ArchiveHandle *AH, RestoreOptions *ropt)
char fname[MAXPGPATH]; char fname[MAXPGPATH];
char path[MAXPGPATH]; char path[MAXPGPATH];
/* Can't overflow because line and fname are the same length. */
if (sscanf(line, "%u %s\n", &oid, fname) != 2) if (sscanf(line, "%u %s\n", &oid, fname) != 2)
exit_horribly(modulename, "invalid line in large object TOC file \"%s\": \"%s\"\n", exit_horribly(modulename, "invalid line in large object TOC file \"%s\": \"%s\"\n",
fname, line); fname, line);