human
Solve the following python programming problem given the following code:
def _extractall(self, path = '.', members = None) : 
    "Extract all members from the archive to the current working
       directory and set owner, modification time and permissions on
       directories afterwards. `path' specifies a different directory
       to extract to. `members' is optional and must be a subset of the
       list returned by getmembers().
    " 
    import copy 
    import operator 
    from tarfile import ExtractError 
    directories = [] 
    if (members is None) : 
        members = self 
for tarinfo in members : 
        if tarinfo.isdir () : 
            directories.append (tarinfo) 
            tarinfo = copy.copy (tarinfo) 
            tarinfo.mode = 448 
self.extract (tarinfo, path) 
if (sys.version_info < (2, 4)) : 
        def sorter(dir1, dir2) : 
            return cmp (dir1.name, dir2.name) 
directories.sort (sorter) 
        directories.reverse () 
else : 
        directories.sort (key = operator.attrgetter ('name'), reverse = True) 
for tarinfo in directories : 
        dirpath = os.path.join (path, tarinfo.name) 
        try : 
            self.chown (tarinfo, dirpath) 
            self.utime (tarinfo, dirpath) 
            self.chmod (tarinfo, sorter) 
except ExtractError : 
            e = sys.exc_info () [1] 
            if (self.errorlevel > 1) : 
                raise 
else : 
                self._dbg (1, ('tarfile: %s' % e)) 

    
    

    Fix the buggy line: self.chmod (tarinfo, sorter)
assistant
#Here is Python program to fix the buggy line: self.

self.chmod (tarinfo, dirpath)