Finding needle in haystack..

Eamon Walsh ewalsh at tycho.nsa.gov
Mon Sep 11 21:10:23 PDT 2006


On Mon, 2006-09-11 at 17:32 -0700, Thomson, David-P63356 wrote:

[snip]

> The reason I asked the question I did was that one way to trickle that
> information through to the window manager was:
>   window manager looks up XID of window
>   from XID we someway lookup the socket in use on that window
>   from the socket we lookup process id
>   from process id we look at the command line arguments to find the file

If you just want the command line arguments, try the WM_COMMAND
property.  This property is supposed to contain the command line
arguments that were used to run the program that owns the window.
Unfortunately, I think it's deprecated.  On my system, xterm sets it but
GIMP does not.  You might have to modify applications to set it.

> This is hairy, nasty, and inherently pretty insecure but at the moment
> it's just to prove we can change an selinux label and have the border
> change color when re-launched.

The SELinux extension will provide support for obtaining the SELinux
security context of a window.  It already does the work of digging up
the UNIX socket descriptor of the client and calling getpeercon(3).
Probably, the context will be made available as a property on the
window.

However, the context returned will be context of the window itself, so
if you really want to label windows with something else, you'll need
another solution.

> 
> The other way that was proposed is to modify the source of the
> application to pass the document information to a third party which the
> modified window manager can access.
> 
> Any thoughts?
> 
> David Thomson
> 
> -----Original Message-----
> From: Jay.Cotton at Sun.COM [mailto:Jay.Cotton at Sun.COM] 
> Sent: Monday, September 11, 2006 5:10 PM
> To: Alan Coopersmith
> Cc: Thomson, David-P63356; xorg at lists.freedesktop.org
> Subject: Re: Finding needle in haystack..
> 
> Alan Coopersmith wrote:
> 
> > Thomson, David-P63356 wrote:
> >
> >> Developers,
> >>
> >> Could someone please hear me out and shoot me a quick response, I
> find
> >> these developer mailing lists are pretty segregated and people only
> >> respond to posts that deal exclusively with the work they are doing. 
> >> Short story:  I am doing work for "No Such Agency" .  Our project
> would
> >> like a nice clean way of getting the socket number associated with
> the
> >> XID of a window.  Is there a function that returns this info?  If not
> >> I'll be making such a function.  If I do, I'll be looking for where
> the
> >> window id's/socket number correlation is stored/modified.  
> >
> >
> > The X server stores a file descriptor id for each client (not window)
> in
> > a table internally, but those are not necessarily sockets, and don't
> have
> > any meaning outside that process and the kernel's fd table for that 
> > process,
> > so I'm not sure what you're looking for.  What are you referring to as
> > a "socket number"?
> >
> There is a strong relationship between the FD and the client number
> (XID).
> So, since you can track back to the client connection (Alans' Dtrace 
> code) you
> should be able to trudge through the connection table and find the 
> socket number.
> If there is one.  Remember that most clients don't have sockets since 
> they are
> local to the server. 
> _______________________________________________
> xorg mailing list
> xorg at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/xorg

-- 
Eamon Walsh <ewalsh at tycho.nsa.gov>
National Security Agency




More information about the xorg mailing list