summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2011-11-30 05:37:38 +0000
committerTom Lane2011-11-30 05:37:38 +0000
commitf97aaaa06c3c79c54e9b3051f03f9bfe56b8a9c6 (patch)
tree7eed3bff6497d30ab992106e0a7d4db28505d043
parent1a44811775d00ac4ac1d3e727bdc9c05ea56a8b9 (diff)
Tweak previous patch to ensure edata->filename always gets initialized.
On a platform that isn't supplying __FILE__, previous coding would either crash or give a stale result for the filename string. Not sure how likely that is, but the original code catered for it, so let's keep doing so.
-rw-r--r--src/backend/utils/error/elog.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c
index 3bd8afc608a..952ed10c467 100644
--- a/src/backend/utils/error/elog.c
+++ b/src/backend/utils/error/elog.c
@@ -331,8 +331,10 @@ errstart(int elevel, const char *filename, int lineno,
/* keep only base name, useful especially for vpath builds */
slash = strrchr(filename, '/');
- edata->filename = slash ? slash + 1 : filename;
+ if (slash)
+ filename = slash + 1;
}
+ edata->filename = filename;
edata->lineno = lineno;
edata->funcname = funcname;
/* Select default errcode based on elevel */
@@ -956,8 +958,10 @@ elog_start(const char *filename, int lineno, const char *funcname)
/* keep only base name, useful especially for vpath builds */
slash = strrchr(filename, '/');
- edata->filename = slash ? slash + 1 : filename;
+ if (slash)
+ filename = slash + 1;
}
+ edata->filename = filename;
edata->lineno = lineno;
edata->funcname = funcname;
/* errno is saved now so that error parameter eval can't change it */