On Fri, Aug 9, 2019 at 8:15 PM Thiago Macieira <thi...@kde.org> wrote:
>
> On Thursday, 8 August 2019 12:00:34 PDT Franklin, Jason wrote:
> > However, after trying several invocations, I can't get the tool to behave as
> > expected (i.e., take a password on stdin and exit with 0/1 on success/
> > failure).
>
> That's because the tool does not take the password on stdin.
>
> $ /usr/lib64/libexec/kcheckpass
> Only binary protocol supported
>
> You need to pass a file descriptor number with the -S option.

This is what I discovered when trying it myself.  This means that the
commentary in the code for kcheckpass is way out of sync with the actual
behavior of the tool.

I think this should be fixed, and I'd be willing to help.

I'm also curious, why doesn't the following work?

  echo -n 'test' | /usr/lib64/libexec/kcheckpass -S 0

I get "Communication breakdown on write".  Seems like passing to stdin with
file descriptor 0 should work.

> kcheckpass.c also makes debugging difficult, by setting a bunch of options to
> prevent unauthorised attaching to the process. You need to modify the source
> to turn those off.

I really appreciate your response and the tip you provided here.  I'll
do my best to
investigate further.

However, I've noticed that this process is not well-documented at all.
The README
file included with kcheckpass isn't very helpful in guiding someone to debugging
the code.  Also, installing a Debian dbgsym package doesn't seem to be
sufficient, as
you noted here.

I'd be very willing to help with this, but the package maintainers
haven't responded
to my query yet.  I submitted the bug report below:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934185

I'm still hoping to hear back!

-- 
JF

Reply via email to