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

Re: [Lost] [Patch] shell - Hänger in start_app



Kevin Wolf wrote:
> Toni Kaufmann schrieb:
>> Dieser Patch beseitigt einen Hänger in Shell, falls init ein Programm
>> nicht starten kann.
>
> Diese Lösung ist einfach, leicht verständlich und kaputt.
>
> Daher folgender Gegenvorschlag, der keine Speicherlöcher und
> geöffneten Dateien hinterlassen sollte.
Stimmt, aber bei deinem Vorschlag bekommt der Aufrufer den Rückgabewert
0 und zeigt also keine Fehlermeldung an. Deshalb jetzt mein 2. Versuch.
Index: src/modules/c/shell/commmands.c
===================================================================
--- src/modules/c/shell/commmands.c	(Revision 606)
+++ src/modules/c/shell/commmands.c	(Arbeitskopie)
@@ -149,8 +149,14 @@
             //send_message(1, 512, 0, strlen(message) + 1, message);
             DEBUG_MSG("Starte das Programm");
             pid_t pid = init_execute(message);
+            
+            // Fehler ist aufgetreten
+            if (pid == 0) {
+                free(message);
+                break;
+            }
 
-            // Wenn es gewuenscht wurde, wird jezt gewartet, bis der Prozess
+            // Wenn es gewuenscht wurde, wird jetzt gewartet, bis der Prozess
             // beendet wird.
             if (wait == TRUE) {
                 while (get_parent_pid(pid) != 0) {