Bug 228291 - [patch] security/plasma5-kwallet-pam: make it work
Summary: [patch] security/plasma5-kwallet-pam: make it work
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-kde (group)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-05-16 13:20 UTC by Tijl Coosemans
Modified: 2019-08-28 18:14 UTC (History)
3 users (show)

See Also:
tcberner: maintainer-feedback+


Attachments
patch (6.82 KB, patch)
2018-05-16 13:20 UTC, Tijl Coosemans
no flags Details | Diff
patch (3.61 KB, patch)
2019-08-28 09:48 UTC, Mikael Urankar
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tijl Coosemans freebsd_committer freebsd_triage 2018-05-16 13:20:11 UTC
Created attachment 193457 [details]
patch

- Remove USES=gettext and add USE_KDE=wallet_run.
- Patch the code so kwalletd can be found in LOCALBASE.
- Replace the use of socat with netcat which is in base.  Note that netcat is bidirectional.  It sends input from stdin over the socket and input from the socket to stdout.  After receiving EOF on stdin it keeps polling the socket for input until the other end closes the connection, which in the case of kwalletd never happens because it's also waiting for more data until the other end closes the connection.  Call netcat using "nc | :" so its stdout is a pipe of which the far end closes immediately (stdout itself stays open).  Without a valid stdout netcat becomes unidirectional.  Using "nc >&-" doesn't work because it closes stdout itself and its descriptor will be reused for the socket so netcat thinks it has a valid stdout.
- Add an upstream followup to the CVE patches committed in ports r469032.
- Fix an off-by-one buffer size check.
- Fix a call to bind(2).  The third argument should be the size of the sockaddr struct.  It contains an extra field besides sun_path and sun_family in BSD so the name of the socket got truncated.
Comment 1 Tobias C. Berner freebsd_committer freebsd_triage 2018-05-16 14:23:40 UTC
The change to set kde home to '.kde4' looks bogus.

It would be great if you would upstream this, by creating a review on phabricator.kde.org.


Mfg Tobias
Comment 2 Tijl Coosemans freebsd_committer freebsd_triage 2018-05-16 14:49:34 UTC
(In reply to Tobias C. Berner from comment #1)
The .kde4 change is behind an ifdef and it should probably be behind an additional ifdef __FreeBSD__.  It's only there in case someone wants to make a copy of this port that builds pam_kwallet.so for the kde4 kwalletd.  I believe .kde was used by KDE3 on FreeBSD.

Dealing with upstream is your job as a maintainer.  I don't want to register yet more bugzilla/phabricater/whatever accounts.

One thing I forgot to mention: the patch moves the pam module from lib/security to lib where the other pam modules are (see pam.conf(5) about "module-path").
Comment 3 Tobias C. Berner freebsd_committer freebsd_triage 2019-03-30 20:21:48 UTC
Moin moin

Sorry, that fell through... could you rebase your patch against the current state?


mfg Tobias
Comment 4 Mikael Urankar freebsd_committer freebsd_triage 2019-08-28 09:48:01 UTC
Created attachment 206965 [details]
patch

regen
Comment 5 commit-hook freebsd_committer freebsd_triage 2019-08-28 18:10:18 UTC
A commit references this bug:

Author: tcberner
Date: Wed Aug 28 18:09:17 UTC 2019
New revision: 510087
URL: https://svnweb.freebsd.org/changeset/ports/510087

Log:
  security/plasma5-kwallet-pam: make it work

  - Replace the use of socat with netcat which is in base.  Note that netcat is
    bidirectional.  It sends input from stdin over the socket and input from the
    socket to stdout.  After receiving EOF on stdin it keeps polling the socket
    for input until the other end closes the connection, which in the case of
    kwalletd never happens because it's also waiting for more data until the
    other end closes the connection.  Call netcat using "nc | :" so its stdout is
    a pipe of which the far end closes immediately (stdout itself stays open).
    Without a valid stdout netcat becomes unidirectional.  Using "nc >&-" doesn't
    work because it closes stdout itself and its descriptor will be reused for
    the socket so netcat thinks it has a valid stdout.

  - Fix an off-by-one buffer size check.

  - Fix a call to bind(2).  The third argument should be the size of the sockaddr
    struct.  It contains an extra field besides sun_path and sun_family in BSD so
    the name of the socket got truncated.

  PR:		228291
  Submitted by:	tijl,  mikael.urankar@gmail.com

Changes:
  head/security/plasma5-kwallet-pam/Makefile
  head/security/plasma5-kwallet-pam/files/
  head/security/plasma5-kwallet-pam/files/patch-pam__kwallet.c
  head/security/plasma5-kwallet-pam/files/patch-pam__kwallet__init
  head/security/plasma5-kwallet-pam/pkg-plist
Comment 6 Tobias C. Berner freebsd_committer freebsd_triage 2019-08-28 18:14:30 UTC
Committed. Thanks you two.