[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lost] [Patch] init_execute relative Pfade und $PATH
Antoine Kaufmann schrieb:
+ strncpy(program, cmd, program_len);
+ program[program_len] = 0;
+ printf("program: '%s' ", program);
Debugausgabe, und dazu noch eine englische. Schande! ;-)
+ // Pruefen ob es sich um einen Pfad handelt
+ abs_path = io_get_absolute_path(program);
+ f = fopen(abs_path, "r");
+ if (f == NULL) {
Zum einen fände ich es grundsätzlich schöner, wenn die kurze Bedingung
der then-Pfad ist, ansonsten habe ich bis zum else schon wieder
vergessen, worum es geht.
In diesem speziellen Fall (und unten nochmal) öffnest du f ja nur zum
prüfen, ob es das gibt. Hatten wir nicht neulich ein access() aufgenommen?
+ printf("dir: '%s' pp: '%s'\n", dir, program_path);
Debugausgabe
+ // Pruefen ob die Datei existiert
+ f = fopen(program_path, "r");
+ if (f != NULL) {
+ // Wenn ja, wird ein Puffer alloziert und abs_path gesetzt
+ abs_path = malloc(strlen(program_path) + 1);
Memleak. abs_path muß erst freigegeben werden.
+ // Wenn kein Programm gefunden wurde, wird abgebrochen
+ if (abs_path == NULL) {
+ return 0;
+ }
Kann abs_path jemals NULL sein? Wenn ja, ist es so geschickt, oben fopen
mit NULL als Dateinamen aufzurufen?
=== commmands.c
==================================================================
+ if (wait == TRUE) {
+ while (waitpid(pid, &status, 0) != pid);
+ }
+ return status;
Wenn wait == FALSE, ist status undefiniert.