[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [Debian]: Sicherheitsloch in der Speicherverwaltung ?



On Sat, 17 Oct 1998, Henning Lorenzen wrote:

> Hallo,
> ich habe ein kurzes Programm geschrieben, das Debian 2.0 mit Linux
> 2.0.35 und Linux 2.1.107 einfriert:
> 
> #include <unistd.h>
> #include <sys/mman.h>
> #include <stdio.h>
> #include <stdlib.h>
> #include <limits.h>
> 
> int main(int argc,char ** argv)
> {
>   
>   unsigned long i=1;
>   long *p=NULL;
/*    ^^^^^^^

    ersetzte dieses durch: 
    unsigned long *p=NULL;
	sonst kann es zu einem Überlauf kommen
siehe hierzu '/usr/include/limits.h'
UINT_MAX = 4294967295
INT_MAX  = 2147483647  braucht ja noch platz für die negativen Zahlen

ULONG_MAX = UINT_MAX
*/


>   size_t page_size=4096;
>   unsigned long npages=0;
>   if (argc>1) npages=strtoul(argv[1],NULL,10);
>   if (npages==0) npages=ULONG_MAX;
>   while ((p!=-1)&&(npages>i))
>     {
>      
> p=mmap(0,page_size,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0);
>       i++;
>       if (p!=-1) *p=i;
>     }
>   pause();
>   return 0;
> }
> 
> Wenn man das Programm ohne Argumente aufruft, geht nach kurzer Zeit
> _nichts_ mehr, wenn das Prgramm nicht abgebrochen werden kann. Ich bin
> auf diesen Effekt durch einen ähnlichen Bug in UAE 0.8.6 gestoßen. Weiß
> irgend jemand, wie dieses Problem zu beheben ist?
  s.o.
;-)
> mfg
> Henning Lorenzen
> 

Gruesse
    Peter

------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <your_email_address>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     629


Reply to: