Re: SECURITY LABEL on shared database object - Mailing list pgsql-hackers

From Joe Conway
Subject Re: SECURITY LABEL on shared database object
Date
Msg-id 4E0BC4A0.3040609@joeconway.com
Whole thread Raw
In response to SECURITY LABEL on shared database object  (Joe Conway <mail@joeconway.com>)
Responses Re: SECURITY LABEL on shared database object
List pgsql-hackers
On 06/29/2011 04:18 PM, Joe Conway wrote:
> 1) COLLATE clause is a new feature in 9.1?
> 2) The doc search feature on postgresql.org does not search the 9.1
>    documentation?
>
> I looked in the 9.1 docs in SQL Commands->SELECT and could find no
> reference to COLLATE. Can anyone point me to some documentation that
> would explain what that error message means and how to resolve it?

A little more information. It seems that sepgsql_restorecon calls
GetSecurityLabel in the backend. Here's the backtrace:

8<-----------------
#0  errfinish (dummy=0) at elog.c:374
#1  0x00000000007b7c70 in varstr_cmp (arg1=0x7faeb724efa9 "selinux",
len1=7, arg2=0x16a1d8c "selinux~", len2=7, collid=0) at varlena.c:1312
#2  0x00000000007b7f01 in text_cmp (arg1=0x7faeb724efa8, arg2=0x16a1d88,
collid=0) at varlena.c:1468
#3  0x00000000007b8424 in bttextcmp (fcinfo=0x7ffff08e2b30) at
varlena.c:1610
#4  0x0000000000819c93 in FunctionCall2Coll (flinfo=0x7ffff08e30a0,
collation=0, arg1=140388373688232, arg2=23731592) at fmgr.c:1319
#5  0x000000000049a905 in _bt_compare (rel=0x7faeb6f71540, keysz=3,
scankey=0x7ffff08e3090, page=0x7faeb724cfc0 "", offnum=1) at nbtsearch.c:406
#6  0x000000000049a2c6 in _bt_binsrch (rel=0x7faeb6f71540, buf=74,
keysz=3, scankey=0x7ffff08e3000, nextkey=0 '\000') at nbtsearch.c:285
#7  0x000000000049b17b in _bt_first (scan=0x169ce28,
dir=ForwardScanDirection) at nbtsearch.c:877
#8  0x0000000000498971 in btgettuple (fcinfo=0x7ffff08e3af0) at nbtree.c:315
#9  0x0000000000819c93 in FunctionCall2Coll (flinfo=0x168e0d8,
collation=0, arg1=23711272, arg2=1) at fmgr.c:1319
#10 0x000000000048eeed in index_getnext (scan=0x169ce28,
direction=ForwardScanDirection) at indexam.c:487
#11 0x000000000048da81 in systable_getnext (sysscan=0x16a1020) at
genam.c:315
#12 0x00000000007fa322 in SearchCatCache (cache=0x1613700, v1=1,
v2=1262, v3=23731592, v4=0) at catcache.c:1201
#13 0x00000000008091c0 in SearchSysCache (cacheId=44, key1=1, key2=1262,
key3=23731592, key4=0) at syscache.c:859
#14 0x00000000005a7016 in GetSecurityLabel (object=0x7ffff08e43d0,
provider=0x7faeb9713830 "selinux") at seclabel.c:157
8<-----------------

The third key passed to SearchSysCache is CStringGetTextDatum(provider).
Ultimately FunctionCall2Coll gets called with collation == 0 and
varstr_cmp fails due to the ambiguity.

Is there something new that should be used in place of
CStringGetTextDatum that would convey a collation here?

Joe

--
Joe Conway
credativ LLC: http://www.credativ.us
Linux, PostgreSQL, and general Open Source
Training, Service, Consulting, & 24x7 Support


pgsql-hackers by date:

Previous
From: Tatsuo Ishii
Date:
Subject: Re: Adding Japanese README
Next
From: Tatsuo Ishii
Date:
Subject: Re: Adding Japanese README