Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c] problema con exevce

    Ciao!!!

    Non riesco a capire perchè se provo a lanciare passwd, con execve non ottengo niente??? Nemmeno errori...
    Centra qualche cosa il bit setuid??
    codice:
     
    
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    
    
    int main () { 
    
    	if ( !fork()) {
    		if ( execve("/usr/bin/passwd", NULL, NULL) == -1) { 
    			perror("EXECVE ERROR"); 
    		}	 
    	} 
    	else 
    	wait((int *)0); 
    	return 0; 
    }

  2. #2
    Non puoi passare quei due NULL a execve; devi necessariamente passare un argv e un envp.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Scusa e se non ho argomenti da passare???


    Comunque vedo che con gli latri programmi funziona....

  4. #4
    Originariamente inviato da PeppePes88
    Scusa e se non ho argomenti da passare???
    Passa un array che contiene solo argv[0], ossia il nome del programma, seguito da un NULL. La cosa può essere semplificata usando la execl.
    codice:
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    
    
    int main () {
    
            if(!fork())
            {
                    if (execl("/usr/bin/passwd", "/usr/bin/passwd", NULL) == -1)
                    {
                            perror("EXECVE ERROR");
                    }
            }
            else
                    wait(NULL);
            return 0;
    }
    Comunque vedo che con gli latri programmi funziona....
    Forse perché altri programmi non cercano niente in argv[0].
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    grazie!!! Avevi ragione tu....

    Ora funziona tutto

  6. #6
    Di niente, ciao!
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.