You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by hu...@apache.org on 2016/09/28 00:59:18 UTC

incubator-hawq git commit: HAWQ-1077. Table insert hangs due to stack overwrite which is caused by a bug in ao snappy code

Repository: incubator-hawq
Updated Branches:
  refs/heads/master fd0b25dd7 -> 98d48e78d


HAWQ-1077. Table insert hangs due to stack overwrite which is caused by a bug in ao snappy code


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/98d48e78
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/98d48e78
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/98d48e78

Branch: refs/heads/master
Commit: 98d48e78d5b4c57a2557412955a39edbcb2fe3bc
Parents: fd0b25d
Author: Paul Guo <pa...@gmail.com>
Authored: Mon Sep 26 16:42:14 2016 +0800
Committer: Paul Guo <pa...@gmail.com>
Committed: Tue Sep 27 18:46:06 2016 +0800

----------------------------------------------------------------------
 src/backend/catalog/pg_compression.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/98d48e78/src/backend/catalog/pg_compression.c
----------------------------------------------------------------------
diff --git a/src/backend/catalog/pg_compression.c b/src/backend/catalog/pg_compression.c
index b073d00..245fd76 100644
--- a/src/backend/catalog/pg_compression.c
+++ b/src/backend/catalog/pg_compression.c
@@ -430,7 +430,7 @@ snappy_compress_internal(PG_FUNCTION_ARGS)
 	size_t			src_sz = PG_GETARG_INT32(1);
 	char			*dst = PG_GETARG_POINTER(2);
 	size_t			dst_sz = PG_GETARG_INT32(3);
-	size_t			*dst_used = PG_GETARG_POINTER(4);
+	int32			*dst_used = PG_GETARG_POINTER(4);
 	size_t			compressed_length;
 	snappy_status	retval;
 
@@ -452,14 +452,14 @@ snappy_decompress_internal(PG_FUNCTION_ARGS)
 	const char		*src	= PG_GETARG_POINTER(0);
 	size_t			src_sz = PG_GETARG_INT32(1);
 	char			*dst	= PG_GETARG_POINTER(2);
-	int32			dst_sz = PG_GETARG_INT32(3);
+	size_t			dst_sz = PG_GETARG_INT32(3);
 	int32			*dst_used = PG_GETARG_POINTER(4);
 	size_t			uncompressed_length;
 	snappy_status	retval;
 
 	Insist(src_sz > 0 && dst_sz > 0);
 
-	retval = snappy_uncompressed_length((char *) src, (size_t) src_sz,
+	retval = snappy_uncompressed_length(src, src_sz,
 										&uncompressed_length);
 	if (retval != SNAPPY_OK)
 		elog_snappy_error(retval, "snappy_uncompressed_length",
@@ -467,8 +467,7 @@ snappy_decompress_internal(PG_FUNCTION_ARGS)
 
 	Insist(dst_sz >= uncompressed_length);
 
-	retval = snappy_uncompress((char *) src, src_sz, (char *) dst,
-							   &uncompressed_length);
+	retval = snappy_uncompress(src, src_sz, dst, &uncompressed_length);
 	*dst_used = uncompressed_length;
 
 	if (retval != SNAPPY_OK)