403Webshell
Server IP : 213.136.93.164  /  Your IP : 216.73.216.104
Web Server : Apache
System : Linux m14200.contabo.net 5.14.0-611.54.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed May 6 18:03:03 EDT 2026 x86_64
User : ki692510 ( 1047)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/utils/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/utils//_shutil.py
"""High-level file operations."""
import errno
import logging
import os
import shutil

logger = logging.getLogger(__name__)


def is_safe_subdir_name(name) -> bool:
    return (
        isinstance(name, str)
        and bool(name)
        and "\x00" not in name
        and name == os.path.basename(name)
        and name not in (".", "..")
    )


def rmtree(path, ignore_errors=False, onerror=None, *, max_tries=3):
    """More robust shutil.rmtree.

    Retry on "Directory not empty" race condition:
    https://github.com/ansible/ansible/issues/34335#issuecomment-362995700
    """
    for i in range(1, max_tries + 1):
        try:
            return shutil.rmtree(path, ignore_errors, onerror)
        except OSError as e:
            if i == max_tries or e.errno not in [
                errno.EEXIST,
                errno.ENOTEMPTY,
            ]:
                raise

            # Got "Directory not empty" and attempts are not exhausted yet
            logger.warning("Can't remove %s tree, reason: %s", path, e)

Youez - 2016 - github.com/yon3zu
LinuXploit