Просмотр исходного кода

* Ignore errors from bad write()/read()/fread()

Bryan Drewery 17 лет назад
Родитель
Сommit
0d216b7aae
4 измененных файлов с 25 добавлено и 9 удалено
  1. 3 1
      src/adns.c
  2. 15 5
      src/dcc.c
  3. 3 1
      src/net.c
  4. 4 2
      src/shell.c

+ 3 - 1
src/adns.c

@@ -356,7 +356,9 @@ void egg_dns_send(char *query, int len)
           sdprintf("SETTING TIMEOUT to %d", async_server_timeout);
           dcc[dns_idx].timeval = now;
         }
-        write(dcc[dns_idx].sock, query, len);
+        if (write(dcc[dns_idx].sock, query, len) == -1) {
+	  ;
+	}
 //	sockbuf_write(dns_idx, query, len);
 }
 

+ 15 - 5
src/dcc.c

@@ -112,22 +112,32 @@ strip_telnet(int sock, char *buf, int *len)
         /* WILL X -> response: DONT X */
         /* except WILL ECHO which we just smile and ignore */
         if (*(p + 1) != TLN_ECHO) {
-          write(sock, TLN_IAC_C TLN_DONT_C, 2);
-          write(sock, p + 1, 1);
+          if (write(sock, TLN_IAC_C TLN_DONT_C, 2) == -1) {
+            ;
+          }
+          if (write(sock, p + 1, 1) == -1) {
+            ;
+          }
         }
       }
       if (*p == TLN_DO) {
         /* DO X -> response: WONT X */
         /* except DO ECHO which we just smile and ignore */
         if (*(p + 1) != TLN_ECHO) {
-          write(sock, TLN_IAC_C TLN_WONT_C, 2);
-          write(sock, p + 1, 1);
+          if (write(sock, TLN_IAC_C TLN_WONT_C, 2) == -1) {
+            ;
+          }
+          if (write(sock, p + 1, 1) == -1) {
+            ;
+          }
         }
       }
       if (*p == TLN_AYT) {
         /* "are you there?" */
         /* response is: "hell yes!" */
-        write(sock, "\r\nHell, yes!\r\n", 14);
+        if (write(sock, "\r\nHell, yes!\r\n", 14) == -1) {
+          ;
+        }
       }
       /* Anything else can probably be ignored */
       p += mark - 1;

+ 3 - 1
src/net.c

@@ -1431,7 +1431,9 @@ void tputs(register int z, char *s, size_t len)
     return;			
 
   if (((z == STDOUT) || (z == STDERR)) && (!backgrd || use_stderr)) {
-    write(z, s, len);
+    if (write(z, s, len) == -1) {
+      ;
+    }
     return;
   }
 

+ 4 - 2
src/shell.c

@@ -416,7 +416,8 @@ int shell_exec(char *cmdline, char *input, char **output, char **erroutput)
       } else {
         buf = (char *) my_calloc(1, fs + 1);
         fseek(err->f, 0, SEEK_SET);
-        fread(buf, 1, fs, err->f);
+        if (!fread(buf, 1, fs, err->f))
+          fs = 0;
         buf[fs] = 0;
         (*erroutput) = buf;
       }
@@ -432,7 +433,8 @@ int shell_exec(char *cmdline, char *input, char **output, char **erroutput)
       } else {
         buf = (char *) my_calloc(1, fs + 1);
         fseek(out->f, 0, SEEK_SET);
-        fread(buf, 1, fs, out->f);
+        if (!fread(buf, 1, fs, out->f))
+          fs = 0;
         buf[fs] = 0;
         (*output) = buf;
       }