shutil _isindir

Peter Otten __peter__ at web.de
Sat Oct 22 03:58:10 EDT 2011


David Hoese wrote:

> I wasn't really sure where to post this since the python-dev list seems
> way too official.  I'm wondering/questioning the behavior of
> shutil.move.  It currently does a check for if the dst is inside the src
> directory with a _destinsrc function.  This function uses
> os.path.abspath to convert the arguments, but I think it should convert
> using os.path.realpath.  A recent problem I had with this I ended up
> asking on stackoverflow:
> http://stackoverflow.com/questions/7854608/python-shutil-move-odd-
softlinking
> 
> So I was wondering if this sounds like a change that should happen in
> the shutil code or should programmers(me) just be more careful.  I feel
> like it should be in the shutil code since its getting around a checked
> case (destination inside source) and it can end up deleting information
> when a move was intended.  But then again this has been in the standard
> lib for a while now, so I'm guessing there are reasons for it...plus it
> was a dumb mistake by me.
> 
> So I guess what I'm asking is what are the reasons that _destinsrc uses
> abspath instead of realpath?  And is there a better place to ask this?
> 
> FYI, I was provided this link to the shutil.py source on SO:
> http://hg.python.org/cpython/file/d30482d51c25/Lib/shutil.py#l262

Your suggestion makes sense to me and I don't see any disadvantages. I 
encourage you to file a bug report on bugs.python.org, preferably with a 
patch. 

If there are any problems with the proposed change they can be discussed 
there.




More information about the Python-list mailing list