aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-12-19 04:56:41 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-12-19 04:56:41 +0000
commit7fc2d50877ff782d1e4196b3adba544e28fb3225 (patch)
treeeca80a33b85ef5d33cfc2fa22068981a37f097f0 /src
parentedc7f146e32355080164629b944ae4073aca343c (diff)
downloadpostgresql-7fc2d50877ff782d1e4196b3adba544e28fb3225.tar.gz
postgresql-7fc2d50877ff782d1e4196b3adba544e28fb3225.zip
Make to_hex() behave portably on negative input values (treat them as
unsigned integers). Per report from Jim Crate.
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/adt/varlena.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 8e01f9f539e..f4d21571ff3 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.108 2003/11/30 20:55:09 joe Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.109 2003/12/19 04:56:41 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2230,11 +2230,11 @@ array_to_text(PG_FUNCTION_ARGS)
Datum
to_hex32(PG_FUNCTION_ARGS)
{
- static char digits[] = "0123456789abcdef";
- char buf[32]; /* bigger than needed, but reasonable */
- char *ptr;
+ uint32 value = (uint32) PG_GETARG_INT32(0);
text *result_text;
- int32 value = PG_GETARG_INT32(0);
+ char *ptr;
+ const char *digits = "0123456789abcdef";
+ char buf[32]; /* bigger than needed, but reasonable */
ptr = buf + sizeof(buf) - 1;
*ptr = '\0';
@@ -2256,11 +2256,11 @@ to_hex32(PG_FUNCTION_ARGS)
Datum
to_hex64(PG_FUNCTION_ARGS)
{
- static char digits[] = "0123456789abcdef";
- char buf[32]; /* bigger than needed, but reasonable */
- char *ptr;
+ uint64 value = (uint64) PG_GETARG_INT64(0);
text *result_text;
- int64 value = PG_GETARG_INT64(0);
+ char *ptr;
+ const char *digits = "0123456789abcdef";
+ char buf[32]; /* bigger than needed, but reasonable */
ptr = buf + sizeof(buf) - 1;
*ptr = '\0';