Обсуждение: Valgrind warnings in master branch ("Invalid read of size 8") originating within CreatePolicy()

Поиск
Список
Период
Сортировка

Valgrind warnings in master branch ("Invalid read of size 8") originating within CreatePolicy()

От
Peter Geoghegan
Дата:
I see the following Valgrind warnings in a recent build of the master branch:

--1159-- REDIR: 0x5f73450 (strstr) redirected to 0x4a25720 (_vgnU_ifunc_wrapper)
--1159-- REDIR: 0x5f88cb0 (__strstr_sse2_unaligned) redirected to
0x4c31fa0 (strstr)
2014-09-29 14:49:24.342 PDT 1159 LOG:  statement: CREATE POLICY p1 ON document  USING (dlevel <= (SELECT seclv FROM
uaccountWHERE pguser = current_user));
 
==1159== Invalid read of size 8
==1159==    at 0x4C2F790: memcpy@@GLIBC_2.14 (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==1159==    by 0x461601: heap_fill_tuple (heaptuple.c:248)
==1159==    by 0x46284E: heap_form_tuple (heaptuple.c:737)
==1159==    by 0x5FD143: CreatePolicy (policy.c:583)
==1159==    by 0x7BA16B: ProcessUtilitySlow (utility.c:1325)
==1159==    by 0x7B9438: standard_ProcessUtility (utility.c:838)
==1159==    by 0x7B86D7: ProcessUtility (utility.c:312)
==1159==    by 0x7B77B8: PortalRunUtility (pquery.c:1187)
==1159==    by 0x7B7987: PortalRunMulti (pquery.c:1318)
==1159==    by 0x7B6ECB: PortalRun (pquery.c:816)
==1159==    by 0x7B0BE4: exec_simple_query (postgres.c:1045)
==1159==    by 0x7B4FCE: PostgresMain (postgres.c:4010)
==1159==  Address 0x6acfd20 is 0 bytes inside a block of size 3 client-defined
==1159==    at 0x91CEE7: palloc (mcxt.c:702)
==1159==    by 0x5B8720: downcase_truncate_identifier (scansup.c:137)
==1159==    by 0x58B0A1: core_yylex (scan.l:963)
==1159==    by 0x58E19D: base_yylex (parser.c:99)
==1159==    by 0x562A8E: base_yyparse (gram.c:20285)
==1159==    by 0x58E109: raw_parser (parser.c:52)
==1159==    by 0x7B0408: pg_parse_query (postgres.c:563)
==1159==    by 0x7B0839: exec_simple_query (postgres.c:879)
==1159==    by 0x7B4FCE: PostgresMain (postgres.c:4010)
==1159==    by 0x739932: BackendRun (postmaster.c:4112)
==1159==    by 0x739011: BackendStartup (postmaster.c:3787)
==1159==    by 0x73580A: ServerLoop (postmaster.c:1566)
==1159==
{  <insert_a_suppression_name_here>  Memcheck:Addr8  fun:memcpy@@GLIBC_2.14  fun:heap_fill_tuple  fun:heap_form_tuple
fun:CreatePolicy fun:ProcessUtilitySlow  fun:standard_ProcessUtility  fun:ProcessUtility  fun:PortalRunUtility
fun:PortalRunMulti fun:PortalRun  fun:exec_simple_query  fun:PostgresMain
 
}

This appears a few times, but always seems to occur with the same call stack.

-- 
Peter Geoghegan



Re: Valgrind warnings in master branch ("Invalid read of size 8") originating within CreatePolicy()

От
Stephen Frost
Дата:
Peter,

* Peter Geoghegan (pg@heroku.com) wrote:
> I see the following Valgrind warnings in a recent build of the master branch:
[...]
> This appears a few times, but always seems to occur with the same call stack.

Many thanks, I've worked out the issue (rsecpolname needs to be filled
in with the results of calling DirectFunctionCall1(namein,
CStringGetDatum()) instead, or we can end up with garbage past the \0
in that fixed-width NameData field).

Will fix, thanks again!
Stephen

Re: Valgrind warnings in master branch ("Invalid read of size 8") originating within CreatePolicy()

От
Stephen Frost
Дата:
Peter,

* Peter Geoghegan (pg@heroku.com) wrote:
> I see the following Valgrind warnings in a recent build of the master branch:

Fix pushed, thanks!
Stephen