pcp
[Top] [All Lists]

Re: [pcp] libpcp crash in sasl/connection/attributes

To: "Frank Ch. Eigler" <fche@xxxxxxxxxx>
Subject: Re: [pcp] libpcp crash in sasl/connection/attributes
From: Nathan Scott <nathans@xxxxxxxxxx>
Date: Tue, 10 Feb 2015 16:50:23 -0500 (EST)
Cc: pcp developers <pcp@xxxxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <20150210163315.GG25151@xxxxxxxxxx>
References: <20150209192657.GD25151@xxxxxxxxxx> <1691871639.1781628.1423528765870.JavaMail.zimbra@xxxxxxxxxx> <20150210163315.GG25151@xxxxxxxxxx>
Reply-to: Nathan Scott <nathans@xxxxxxxxxx>
Thread-index: zHWoIPSEv4v+1vNNGM3Q1SwfHP6pGw==
Thread-topic: libpcp crash in sasl/connection/attributes

----- Original Message -----
> > > This is with older-than-git-master libpcp, but as this problem occurs
> > > during the pmNewContext, commit 63721a89 shouldn't be related.
> > > 
> > > % valgrind pminfo -h 'pcp://localhost?pass=jsjs'
> > 
> > Hmm, this is not reproducible here with current dev - I see all sorts of
> > krb*, sasl*, and gss* valgrind warnings from error paths in those libs,
> > but nothing that seems to originate from pcp so far.
> 
> I don't see how it could appear that way to you.  In fact, the problem
> shows up readily on old versions of PCP on RHEL5 through git pcp on
> rawhide.  And indeed it is a bug in pcp, corrected thusly on
> pcpfans.git fche/sasl-crash :

Thanks.

Here's what I see FWIW ... quite different to yours.  Could be a difference
in SASL configuration or installed SASL modules, perhaps.

$ valgrind pminfo -h 'pcp://localhost?pass=jsjs'
==20278== Memcheck, a memory error detector
==20278== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==20278== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info
==20278== Command: pminfo -h pcp://localhost?pass=jsjs
==20278== 
Username: moo
==20278== Invalid read of size 8
==20278==    at 0x3CC6732D44: __strspn_sse42 (in /lib64/libc-2.12.so)
==20278==    by 0x31BBC8302D: krb5int_clean_hostname (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC83579: krb5_get_host_realm (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC88A80: krb5_sname_to_principal (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BB821C1C: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB811E5E: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB81297B: gss_init_sec_context (in 
/lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x5858248: ??? (in /usr/lib64/sasl2/libgssapiv2.so.2.0.23)
==20278==    by 0x3CD760874B: sasl_client_step (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278==    by 0x3CD7608CD8: sasl_client_start (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278==    by 0x3C64E6F209: __pmAuthClientNegotiation (secureconnect.c:1080)
==20278==    by 0x3C64E6F943: __pmSecureClientHandshake (secureconnect.c:1216)
==20278==  Address 0x4c50e58 is 8 bytes inside a block of size 10 alloc'd
==20278==    at 0x4A05FDE: malloc (vg_replace_malloc.c:236)
==20278==    by 0x3CC6680871: strdup (in /lib64/libc-2.12.so)
==20278==    by 0x31BBC88B7C: krb5_sname_to_principal (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BB821C1C: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB811E5E: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB81297B: gss_init_sec_context (in 
/lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x5858248: ??? (in /usr/lib64/sasl2/libgssapiv2.so.2.0.23)
==20278==    by 0x3CD760874B: sasl_client_step (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278==    by 0x3CD7608CD8: sasl_client_start (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278==    by 0x3C64E6F209: __pmAuthClientNegotiation (secureconnect.c:1080)
==20278==    by 0x3C64E6F943: __pmSecureClientHandshake (secureconnect.c:1216)
==20278==    by 0x3C64E120B4: attributes_handshake (connect.c:175)
==20278== 
==20278== Conditional jump or move depends on uninitialised value(s)
==20278==    at 0x3CC6732D4E: __strspn_sse42 (in /lib64/libc-2.12.so)
==20278==    by 0x31BBC8302D: krb5int_clean_hostname (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC831CC: krb5_get_fallback_host_realm (in 
/lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC57AEE: krb5_tkt_creds_step (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC57FD7: krb5_tkt_creds_get (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC5812C: krb5_get_credentials (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BB822E21: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB823C3C: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB824356: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB812A17: gss_init_sec_context (in 
/lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x5858248: ??? (in /usr/lib64/sasl2/libgssapiv2.so.2.0.23)
==20278==    by 0x3CD760874B: sasl_client_step (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278== 
==20278== Conditional jump or move depends on uninitialised value(s)
==20278==    at 0x31BBC8303C: krb5int_clean_hostname (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC831CC: krb5_get_fallback_host_realm (in 
/lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC57AEE: krb5_tkt_creds_step (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC57FD7: krb5_tkt_creds_get (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BBC5812C: krb5_get_credentials (in /lib64/libkrb5.so.3.3)
==20278==    by 0x31BB822E21: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB823C3C: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB824356: ??? (in /lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x31BB812A17: gss_init_sec_context (in 
/lib64/libgssapi_krb5.so.2.2)
==20278==    by 0x5858248: ??? (in /usr/lib64/sasl2/libgssapiv2.so.2.0.23)
==20278==    by 0x3CD760874B: sasl_client_step (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278==    by 0x3CD7608CD8: sasl_client_start (in 
/usr/lib64/libsasl2.so.2.0.23)
==20278== 
[Wed Feb 11 08:39:28] pminfo(20278) Alert: GSSAPI Error: Unspecified GSS 
failure.  Minor code may provide more information (Ticket expired)
pminfo: Cannot connect to PMCD on host "pcp://localhost?pass=jsjs": 
Authentication - generic failure
==20278== 
==20278== HEAP SUMMARY:
==20278==     in use at exit: 37,277 bytes in 164 blocks
==20278==   total heap usage: 1,432 allocs, 1,268 frees, 289,167 bytes allocated
==20278== 
==20278== LEAK SUMMARY:
==20278==    definitely lost: 1,506 bytes in 51 blocks
==20278==    indirectly lost: 32 bytes in 1 blocks
==20278==      possibly lost: 0 bytes in 0 blocks
==20278==    still reachable: 35,739 bytes in 112 blocks
==20278==         suppressed: 0 bytes in 0 blocks
==20278== Rerun with --leak-check=full to see details of leaked memory
==20278== 
==20278== For counts of detected and suppressed errors, rerun with: -v
==20278== Use --track-origins=yes to see where uninitialised values come from
==20278== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 48 from 9)

<Prev in Thread] Current Thread [Next in Thread>