Bugs item #1438537, was opened at 2006-02-25 04:41
Message generated for change (Comment added) made by tjreedy
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1438537&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Documentation
Group: Python 2.4
Status: Open
Resolution: None
Priority: 5
Submitted By: A. Coder (hauptbeuteltier)
Assigned to: Nobody/Anonymous (nobody)
Summary: modules search in help() crashes on insufficient file perms

Initial Comment:
In the python interpreter, in the interactive online
help, typing <code>modules &lt;keyword&gt;</code>
throws a permission denied error (Errno 13) and dumps
the user back to the main interpreter if the user has
insufficient permission to read any .py file from the
site-packages directory.


Example:
~:$ ls -l /usr/lib/python2.4/site-packages/pygtk.py
-rw-r-----  1 root root 2619 2005-02-20 14:18
/usr/lib/python2.4/site-packages/pygtk.py
~:$ python
>>> help()

help> modules html

Here is a list of matching modules.  Enter any module
name to get more help.

HTMLParser - A parser for HTML and XHTML.
htmlentitydefs - HTML character entity references.
htmllib - HTML 2.0 parser.
markupbase - Shared support for scanning document type
declarations in HTML and XHTML.
pydoc - Generate Python documentation in HTML or text
for interactive use.
test.test_htmllib 
test.test_htmlparser - Tests for HTMLParser.py.
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
  File "/usr/lib/python2.4/site.py", line 328, in __call__
    return pydoc.help(*args, **kwds)
  File "/usr/lib/python2.4/pydoc.py", line 1650, in
__call__
    self.interact()
  File "/usr/lib/python2.4/pydoc.py", line 1668, in
interact
    self.help(request)
  File "/usr/lib/python2.4/pydoc.py", line 1686, in help
    self.listmodules(split(request)[1])
  File "/usr/lib/python2.4/pydoc.py", line 1790, in
listmodules
    apropos(key)
  File "/usr/lib/python2.4/pydoc.py", line 1900, in apropos
    ModuleScanner().run(callback, key)
  File "/usr/lib/python2.4/pydoc.py", line 1886, in run
    desc = synopsis(path) or ''
  File "/usr/lib/python2.4/pydoc.py", line 182, in synopsis
    file = open(filename)
IOError: [Errno 13] Permission denied:
'/usr/lib/python2.4/site-packages/tageditor.py'
>>>

----------------------------------------------------------------------

>Comment By: Terry J. Reedy (tjreedy)
Date: 2006-03-05 22:18

Message:
Logged In: YES 
user_id=593130

I am tempted to say that the restricted file permission is 
the bug but enhancing pydoc seems reasonable to me.  It 
appears to open the file to get the first line of the doc 
string.  So I would have the exception clause instead 
return a string like "Permission denied: you cannot import 
this file.  See your system administrator for more."

I would have attached such a mini patch here.  Once a 
committer reads this bug report and decides to make a 
change, hardly any review is needed.

----------------------------------------------------------------------

Comment By: splitscreen (splitscreen)
Date: 2006-02-28 19:08

Message:
Logged In: YES 
user_id=1126061

Patch #1440660 fixes this.

----------------------------------------------------------------------

Comment By: Grant Olson (logistix)
Date: 2006-02-28 16:55

Message:
Logged In: YES 
user_id=699438

I personally don't have commit rights, but yes, it's
generally easiest if you post the patch to Patch manager and
put a cross reference note on the bug.  Developers usually
give working patches precidence over bugs.

----------------------------------------------------------------------

Comment By: splitscreen (splitscreen)
Date: 2006-02-28 10:54

Message:
Logged In: YES 
user_id=1126061

Yeah, I've modified it to tell the user which file caused
the problem.

Want the patch posting to the Patch Manager?

----------------------------------------------------------------------

Comment By: Grant Olson (logistix)
Date: 2006-02-26 18:32

Message:
Logged In: YES 
user_id=699438

That patch sounds pretty-much right, but I think it should
print some feedback to stderr instead of silently swallowing
the exception.

----------------------------------------------------------------------

Comment By: splitscreen (splitscreen)
Date: 2006-02-25 07:34

Message:
Logged In: YES 
user_id=1126061

Could this just be silently skipped? i.e returning None if
the user does not have the corrept permissions to access a
particular file?

Just wrap the 'file = open(filename)' in pydoc.py: line 182
in a try: except block returning None if there's an error
(such as permission denied).

I have written a patch I can supply if anyone wants it and
if this is the Right Thing To Do (TM).


----------------------------------------------------------------------

Comment By: A. Coder (hauptbeuteltier)
Date: 2006-02-25 04:44

Message:
Logged In: YES 
user_id=1420716

My apologies. The tageditor.py file had the same permissions
for my test as pygtk.py. The particular file is irrelevant
in this case, it only matters that a user has insufficient
permissions for any file in the site-packages directory.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1438537&group_id=5470
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to