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/warn/   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:     Wuse-after-free.C (3.97 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* Exercise basic C++ only cases of -Wuse-after-free without optimization.
   { dg-do compile }
   { dg-options "-O0 -Wall" } */

typedef __SIZE_TYPE__ size_t;

extern "C" void free (void *);
extern "C" void* realloc (void *, size_t);

void sink (void *);

extern void* evp;
extern void* evpa[];

extern int ei;

struct List { struct List *next; };

void nowarn_delete (void *vp, struct List *lp)
{
  {
    operator delete (vp);
    vp = 0;
    sink (vp);
  }
  {
    operator delete (evp);
    evp = 0;
    sink (evp);
  }
  {
    operator delete (evpa[0]);
    evpa[0] = 0;
    sink (evpa[0]);
  }
  {
    void *vp = evpa[0];
    operator delete (evpa[0]);
    sink (vp);
  }
  {
    void *p = evpa[1];
    if (ei & 1)
      operator delete (p);
    if (ei & 2)
      sink (p);
  }
  {
    struct List *next = lp->next;
    operator delete (lp);
    operator delete (next);
  }
}

void nowarn_delete_arg (void *p, void *q)
{
  operator delete (p);
  if (q)
    operator delete (q);
}

void nowarn_delete_extern (void)
{
  extern void *ep, *eq;
  operator delete (ep);
  ep = eq;
  operator delete (ep);
}

void nowarn_delete_assign (void)
{
  extern void *ep;
  operator delete (ep);
  ep = 0;
  operator delete (ep);
}

void warn_double_delete_arg (void *p)
{
  operator delete (p);        // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
  operator delete (p);        // { dg-warning "\\\-Wuse-after-free" }
}

void warn_delete_free_arg (void *p)
{
  operator delete (p);        // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
  free (p);                   // { dg-warning "\\\-Wuse-after-free" }
}

void warn_free_delete_arg (void *p)
{
  free (p);                   // { dg-message "call to 'void free\\(void\\*\\)'" "note" }
  operator delete (p);        // { dg-warning "\\\-Wuse-after-free" }
}

void warn_mismatched_double_delete_arg (void *p, void *q)
{
  operator delete (p);        // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
  operator delete[] (p);      // { dg-warning "\\\-Wuse-after-free" }

  operator delete[] (q);      // { dg-message "call to 'void operator delete \\\[]\\(void\\*\\)'" "note" }
  operator delete (q);        // { dg-warning "\\\-Wuse-after-free" }
}

void warn_double_delete_extern (void)
{
  /* GCC assumes operator delete() clobbers global memory and the warning is
     too simplistic to see through that assumption.  */
  extern void *ep, *eq;
  {
    eq = ep;
    operator delete (ep);     // { dg-message "call to 'operator delete'" "pr??????" { xfail *-*-* } }
    operator delete (eq);     // { dg-warning "\\\-Wuse-after-free" "pr??????" { xfail *-*-* } }
  }
}

void warn_deref_after_delete (int *p, int i)
{
  int *q0 = p, *q1 = p + 1, *qi = p + i;
  operator delete (p);        // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
  *p = 0;                     // { dg-warning "\\\-Wuse-after-free" }

  *q0 = 0;                    // { dg-warning "\\\-Wuse-after-free" }
  *q1 = 0;                    // { dg-warning "\\\-Wuse-after-free" }
  *qi = 0;                    // { dg-warning "\\\-Wuse-after-free" }
}

void warn_array_ref_after_delete (int *p, int i)
{
  operator delete (p);        // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
  p[i] = 0;                   // { dg-warning "\\\-Wuse-after-free" }
}

void nowarn_delete_list (struct List *head)
{
  for (struct List *p = head, *q; p; p = q)
    {
      q = p->next;
      operator delete (p);
    }
}

void warn_delete_list (struct List *head)
{
  struct List *p = head;
  for (; p; p = p->next)      // { dg-warning "\\\[-Wuse-after-free" }
    operator delete (p);      // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
}

void warn_delete (void *vp)
{
  {
    operator delete (vp);     // { dg-message "call to 'void operator delete\\(void\\*\\)'" "note" }
    evp = vp;                 // { dg-warning "-Wuse-after-free" }
    evpa[0] = vp;             // { dg-warning "-Wuse-after-free" }
    evpa[1] = evp;
  }
}

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.0064 ]--