Pokaż wyniki 1 do 2 z 2

Temat: znalazlem buga w kernelu 2.6.31

  1. #1
    Zarejestrowany
    Aug 2009
    Postów
    408

    Domyślnie znalazlem buga w kernelu 2.6.31

    odpalcie, jaki output? ja mam tylko buf2, jak zmniejsze rozmiar mam oba.
    Kod:
    #include <unistd.h>
    #include <fcntl.h>
    int main(){
    char buf1[2560];
    char buf2[2560];
    memset(buf1, 'A', sizeof(buf1)-1);
    memset(buf2, 'B', sizeof(buf2)-1);
    buf1[sizeof(buf1)]=0;
    buf2[sizeof(buf2)]=0;
    
    
    
    if(fork())printf("%s\r\n", buf1); //parent
    else printf("%s\r\n", buf2); //child
    
    
    
    sleep(-1); //so return wont call lame exit_group.
    
    return 0;
    }

  2. #2
    Avatar rafal44
    rafal44 jest offline logout
    Zarejestrowany
    Dec 2007
    Postów
    291

    Domyślnie

    Dobrze widzę?
    Kod:
    buf1[sizeof(buf1)]=0;
    Ta operacja wykracza poza zakres tablicy(indeksowanie jest od zera).
    Dlatego pierwszym elementem buf1 jest zero(które wylało się z buf2), dlatego printf nie wyświetla nic.
    "a imię jego będzie czterdzieści i cztery"
    A. Mickiewicz Dziady cz. III

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52