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: