Author: robert
Date: 2006-10-13 08:33:50 -0600 (Fri, 13 Oct 2006)
New Revision: 1708

Added:
   trunk/vim/vim-7.0-fortify_warnings-1.patch
Log:
Added vim-7.0-fortify_warnings-1.patch

Added: trunk/vim/vim-7.0-fortify_warnings-1.patch
===================================================================
--- trunk/vim/vim-7.0-fortify_warnings-1.patch                          (rev 0)
+++ trunk/vim/vim-7.0-fortify_warnings-1.patch  2006-10-13 14:33:50 UTC (rev 
1708)
@@ -0,0 +1,446 @@
+Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
+Date: 2006-10-12
+Initial Package Version: 7.0
+Upstream Status: Submitted
+Origin: None
+Description: This patch fixes warnings caused by -D_FORTIFY_SOURCE=2.
+
+diff -Naur vim70.orig/src/diff.c vim70/src/diff.c
+--- vim70.orig/src/diff.c      2006-04-22 16:15:04.000000000 +0000
++++ vim70/src/diff.c   2006-10-13 13:23:05.000000000 +0000
+@@ -699,12 +699,18 @@
+       fd = mch_fopen((char *)tmp_orig, "w");
+       if (fd != NULL)
+       {
+-          fwrite("line1\n", (size_t)6, (size_t)1, fd);
++          if (fwrite("line1\n", (size_t)6, (size_t)1, fd) != 0){
++              (void)fprintf(stderr, "fwrite failed\n");
++              exit(1);
++          }
+           fclose(fd);
+           fd = mch_fopen((char *)tmp_new, "w");
+           if (fd != NULL)
+           {
+-              fwrite("line2\n", (size_t)6, (size_t)1, fd);
++              if (fwrite("line2\n", (size_t)6, (size_t)1, fd) !=0) {
++                  (void)fprintf(stderr, "fwrite failed\n");
++                  exit(1);
++              }
+               fclose(fd);
+               diff_file(tmp_orig, tmp_new, tmp_diff);
+               fd = mch_fopen((char *)tmp_diff, "r");
+@@ -921,11 +927,18 @@
+     else
+     {
+ # ifdef TEMPDIRNAMES
+-      if (vim_tempdir != NULL)
+-          mch_chdir((char *)vim_tempdir);
++      if (vim_tempdir != NULL) {
++          if (mch_chdir((char *)vim_tempdir) !=0) {
++              (void)fprintf(stderr, "mch_chdir failed\n");
++              exit(1);
++          }
++      }
+       else
+ # endif
+-          mch_chdir("/tmp");
++          if (mch_chdir("/tmp") != 0) {
++              (void)fprintf(stderr, "mch_chdir failed\n");
++              exit(1);
++          }
+       shorten_fnames(TRUE);
+     }
+ #endif
+diff -Naur vim70.orig/src/ex_cmds.c vim70/src/ex_cmds.c
+--- vim70.orig/src/ex_cmds.c   2006-04-22 18:56:56.000000000 +0000
++++ vim70/src/ex_cmds.c        2006-10-13 13:23:05.000000000 +0000
+@@ -1919,7 +1919,10 @@
+            * root.
+            */
+           if (fp_out != NULL)
+-              (void)fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid);
++              if (fchown(fileno(fp_out), st_old.st_uid, st_old.st_gid) != 0) {
++                  (void)fprintf(stderr, "fchown failed\n");
++                  exit(1);
++              }
+ #endif
+       }
+     }
+diff -Naur vim70.orig/src/ex_docmd.c vim70/src/ex_docmd.c
+--- vim70.orig/src/ex_docmd.c  2006-05-05 16:33:19.000000000 +0000
++++ vim70/src/ex_docmd.c       2006-10-13 13:23:05.000000000 +0000
+@@ -8651,7 +8651,11 @@
+               else if (*dirnow != NUL
+                       && (ssop_flags & SSOP_CURDIR) && globaldir != NULL)
+               {
+-                  (void)mch_chdir((char *)globaldir);
++                  if (mch_chdir((char *)globaldir) != 0) {
++                      (void)fprintf(stderr, "mch_chdir failed\n");
++                      exit(1);
++              }
++
+                   shorten_fnames(TRUE);
+               }
+ 
+diff -Naur vim70.orig/src/fileio.c vim70/src/fileio.c
+--- vim70.orig/src/fileio.c    2006-04-30 15:28:57.000000000 +0000
++++ vim70/src/fileio.c 2006-10-13 13:23:05.000000000 +0000
+@@ -2141,7 +2141,10 @@
+     {
+       /* Use stderr for stdin, makes shell commands work. */
+       close(0);
+-      dup(2);
++      if (dup(2) != 0) {
++          (void)fprintf(stderr, "dup failed\n");
++          exit(1);
++      }
+     }
+ #endif
+ 
+@@ -3321,7 +3324,8 @@
+               {
+ # ifdef UNIX
+ #  ifdef HAVE_FCHOWN
+-                  fchown(fd, st_old.st_uid, st_old.st_gid);
++                  if (fchown(fd, st_old.st_uid, st_old.st_gid) == 0)
++                      fchmod(fd, perm);
+ #  endif
+                   if (mch_stat((char *)IObuff, &st) < 0
+                           || st.st_uid != st_old.st_uid
+@@ -4224,7 +4228,10 @@
+               || st.st_uid != st_old.st_uid
+               || st.st_gid != st_old.st_gid)
+       {
+-          fchown(fd, st_old.st_uid, st_old.st_gid);
++          if (fchown(fd, st_old.st_uid, st_old.st_gid) != 0) {
++              (void)fprintf(stderr, "fchown failed\n");
++              exit(1);
++          }
+           if (perm >= 0)      /* set permission again, may have changed */
+               (void)mch_setperm(wfname, perm);
+       }
+@@ -5862,9 +5869,15 @@
+       {
+           tbuf[FGETS_SIZE - 2] = NUL;
+ #ifdef USE_CR
+-          fgets_cr((char *)tbuf, FGETS_SIZE, fp);
++          if (fgets_cr((char *)tbuf, FGETS_SIZE, fp) != 0) {
++              (void)fprintf(stderr, "fgets_cr failed\n");
++              exit(1);
++          }
+ #else
+-          fgets((char *)tbuf, FGETS_SIZE, fp);
++          if (fgets((char *)tbuf, FGETS_SIZE, fp) != 0) {
++              (void)fprintf(stderr, "fgets failed\n");
++              exit(1);
++          }
+ #endif
+       } while (tbuf[FGETS_SIZE - 2] != NUL && tbuf[FGETS_SIZE - 2] != '\n');
+     }
+diff -Naur vim70.orig/src/main.c vim70/src/main.c
+--- vim70.orig/src/main.c      2006-05-03 17:36:44.000000000 +0000
++++ vim70/src/main.c   2006-10-13 13:23:05.000000000 +0000
+@@ -2267,7 +2267,10 @@
+      * Is there any other system that cannot do this?
+      */
+     close(0);
+-    dup(2);
++    if (dup(2) != 0) {
++      (void)fprintf(stderr, "dup failed\n");
++      exit(1);
++    }
+ #endif
+ }
+ 
+diff -Naur vim70.orig/src/mbyte.c vim70/src/mbyte.c
+--- vim70.orig/src/mbyte.c     2006-04-30 11:51:01.000000000 +0000
++++ vim70/src/mbyte.c  2006-10-13 13:23:05.000000000 +0000
+@@ -705,7 +705,10 @@
+                    * where mblen() returns 0 for invalid character.
+                    * Therefore, following condition includes 0.
+                    */
+-                  (void)mblen(NULL, 0);       /* First reset the state. */
++                  if (mblen(NULL, 0) != 0) {  /* First reset the state. */
++                      (void)fprintf(stderr, "mblen failed\n");
++                      exit(1);
++                  }
+                   if (mblen(buf, (size_t)1) <= 0)
+                       n = 2;
+                   else
+diff -Naur vim70.orig/src/os_unix.c vim70/src/os_unix.c
+--- vim70.orig/src/os_unix.c   2006-05-01 08:13:15.000000000 +0000
++++ vim70/src/os_unix.c        2006-10-13 13:23:49.000000000 +0000
+@@ -296,7 +296,11 @@
+     char_u    *s;
+     int               len;
+ {
+-    write(1, (char *)s, len);
++    /* This write(3) function often doesn't return 0. That's fine.
++       But to make FORTIFY_SOURCE happy we'll check it. */
++    if (write(1, (char *)s, len) == 0) {
++      return 0;
++    }
+     if (p_wd)         /* Unix is too fast, slow down a bit more */
+       RealWaitForChar(read_cmd_fd, p_wd, NULL);
+ }
+@@ -3732,9 +3736,18 @@
+                */
+               if (fd >= 0)
+               {
+-                  dup(fd); /* To replace stdin  (file descriptor 0) */
+-                  dup(fd); /* To replace stdout (file descriptor 1) */
+-                  dup(fd); /* To replace stderr (file descriptor 2) */
++                  if (dup(fd) != 0) { /* To replace stdin  (file descriptor 
0) */
++                      (void)fprintf(stderr, "dup failed\n");
++                      exit(1);
++                  }
++                  if (dup(fd) != 0) { /* To replace stdout (file descriptor 
1) */
++                      (void)fprintf(stderr, "dup failed\n");
++                      exit(1);
++                  }
++                  if (dup(fd) != 0) { /* To replace stderr (file descriptor 
2) */
++                      (void)fprintf(stderr, "dup failed\n");
++                      exit(1);
++                  }
+ 
+                   /* Don't need this now that we've duplicated it */
+                   close(fd);
+@@ -3819,13 +3832,19 @@
+                   /* set up stdin for the child */
+                   close(fd_toshell[1]);
+                   close(0);
+-                  dup(fd_toshell[0]);
++                  if (dup(fd_toshell[0]) != 0) {
++                      (void)fprintf(stderr, "dup failed\n");
++                      exit(1);
++                  }
+                   close(fd_toshell[0]);
+ 
+                   /* set up stdout for the child */
+                   close(fd_fromshell[0]);
+                   close(1);
+-                  dup(fd_fromshell[1]);
++                  if (dup(fd_fromshell[1]) != 0) {
++                      (void)fprintf(stderr, "dup failed\n");
++                      exit(1);
++                  }
+                   close(fd_fromshell[1]);
+ 
+ # ifdef FEAT_GUI
+@@ -3964,7 +3983,10 @@
+                                           && (lnum !=
+                                                   curbuf->b_ml.ml_line_count
+                                                   || curbuf->b_p_eol)))
+-                                  write(toshell_fd, "\n", (size_t)1);
++                                  if (write(toshell_fd, "\n", (size_t)1) != 
0) {
++                                      (void)fprintf(stderr, "write failed\n");
++                                      exit(1);
++                                  }
+                               ++lnum;
+                               if (lnum > curbuf->b_op_end.lnum)
+                               {
+diff -Naur vim70.orig/src/spell.c vim70/src/spell.c
+--- vim70.orig/src/spell.c     2006-05-05 07:49:58.000000000 +0000
++++ vim70/src/spell.c  2006-10-13 13:23:05.000000000 +0000
+@@ -7905,7 +7905,10 @@
+ 
+       i = (int)STRLEN(spin->si_info);
+       put_bytes(fd, (long_u)i, 4);                    /* <sectionlen> */
+-      fwrite(spin->si_info, (size_t)i, (size_t)1, fd); /* <infotext> */
++      if (fwrite(spin->si_info, (size_t)i, (size_t)1, fd) != 0) { /* 
<infotext> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* SN_REGION: <regionname> ...
+@@ -7916,7 +7919,10 @@
+       putc(SNF_REQUIRED, fd);                         /* <sectionflags> */
+       l = spin->si_region_count * 2;
+       put_bytes(fd, (long_u)l, 4);                    /* <sectionlen> */
+-      fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd);
++      if (fwrite(spin->si_region_name, (size_t)l, (size_t)1, fd) != 0) {
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+                                                       /* <regionname> ... */
+       regionmask = (1 << spin->si_region_count) - 1;
+     }
+@@ -7966,7 +7972,10 @@
+       }
+ 
+       put_bytes(fd, (long_u)l, 2);                    /* <folcharslen> */
+-      fwrite(folchars, (size_t)l, (size_t)1, fd);     /* <folchars> */
++      if (fwrite(folchars, (size_t)l, (size_t)1, fd) != 0) {  /* <folchars> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* SN_MIDWORD: <midword> */
+@@ -7977,7 +7986,10 @@
+ 
+       i = (int)STRLEN(spin->si_midword);
+       put_bytes(fd, (long_u)i, 4);                    /* <sectionlen> */
+-      fwrite(spin->si_midword, (size_t)i, (size_t)1, fd); /* <midword> */
++      if (fwrite(spin->si_midword, (size_t)i, (size_t)1, fd) != 0) { /* 
<midword> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* SN_PREFCOND: <prefcondcnt> <prefcond> ... */
+@@ -8063,7 +8075,10 @@
+               p = rr == 1 ? ftp->ft_from : ftp->ft_to;
+               l = (int)STRLEN(p);
+               putc(l, fd);
+-              fwrite(p, l, (size_t)1, fd);
++              if (fwrite(p, l, (size_t)1, fd) != 0) {
++                  (void)fprintf(stderr, "fwrite failed\n");
++                  exit(1);
++              }
+           }
+       }
+ 
+@@ -8081,11 +8096,17 @@
+                                                       /* <sectionlen> */
+ 
+       put_bytes(fd, (long_u)l, 2);                    /* <sofofromlen> */
+-      fwrite(spin->si_sofofr, l, (size_t)1, fd);      /* <sofofrom> */
++      if (fwrite(spin->si_sofofr, l, (size_t)1, fd) != 0) {   /* <sofofrom> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+ 
+       l = (int)STRLEN(spin->si_sofoto);
+       put_bytes(fd, (long_u)l, 2);                    /* <sofotolen> */
+-      fwrite(spin->si_sofoto, l, (size_t)1, fd);      /* <sofoto> */
++      if (fwrite(spin->si_sofoto, l, (size_t)1, fd) != 0) {   /* <sofoto> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* SN_WORDS: <word> ...
+@@ -8110,7 +8131,10 @@
+                   l = (int)STRLEN(hi->hi_key) + 1;
+                   len += l;
+                   if (round == 2)                     /* <word> */
+-                      fwrite(hi->hi_key, (size_t)l, (size_t)1, fd);
++                      if (fwrite(hi->hi_key, (size_t)l, (size_t)1, fd) != 0) {
++                          (void)fprintf(stderr, "fwrite failed\n");
++                          exit(1);
++                      }
+                   --todo;
+               }
+           if (round == 1)
+@@ -8126,7 +8150,10 @@
+       putc(0, fd);                                    /* <sectionflags> */
+       l = spin->si_map.ga_len;
+       put_bytes(fd, (long_u)l, 4);                    /* <sectionlen> */
+-      fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd);
++      if (fwrite(spin->si_map.ga_data, (size_t)l, (size_t)1, fd) != 0) {
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+                                                       /* <mapstr> */
+     }
+ 
+@@ -8182,11 +8209,17 @@
+       {
+           p = ((char_u **)(spin->si_comppat.ga_data))[i];
+           putc((int)STRLEN(p), fd);                   /* <comppatlen> */
+-          fwrite(p, (size_t)STRLEN(p), (size_t)1, fd);/* <comppattext> */
++          if (fwrite(p, (size_t)STRLEN(p), (size_t)1, fd) != 0) { /* 
<comppattext> */
++              (void)fprintf(stderr, "fwrite failed\n");
++              exit(1);
++          }
+       }
+                                                       /* <compflags> */
+-      fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags),
+-                                                             (size_t)1, fd);
++      if (fwrite(spin->si_compflags, (size_t)STRLEN(spin->si_compflags),
++                                                             (size_t)1, fd) 
!= 0) {
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* SN_NOBREAK: NOBREAK flag */
+@@ -8209,7 +8242,10 @@
+ 
+       l = (int)STRLEN(spin->si_syllable);
+       put_bytes(fd, (long_u)l, 4);                    /* <sectionlen> */
+-      fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd); /* <syllable> */
++      if (fwrite(spin->si_syllable, (size_t)l, (size_t)1, fd) != 0) { /* 
<syllable> */
++          (void)fprintf(stderr, "fwrite failed\n");
++          exit(1);
++      }
+     }
+ 
+     /* end of <SECTIONS> */
+@@ -9834,7 +9870,10 @@
+           if (fd != NULL)
+           {
+               fputc(len, fd);
+-              fwrite(p, (size_t)len, (size_t)1, fd);
++              if (fwrite(p, (size_t)len, (size_t)1, fd) != 0) {
++                  (void)fprintf(stderr, "fwrite failed\n");
++                  exit(1);
++              }
+           }
+           totlen += len;
+       }
+diff -Naur vim70.orig/src/structs.h vim70/src/structs.h
+--- vim70.orig/src/structs.h   2006-04-09 17:57:46.000000000 +0000
++++ vim70/src/structs.h        2006-10-13 13:23:05.000000000 +0000
+@@ -1082,7 +1082,7 @@
+ {
+     typval_T  di_tv;          /* type and value of the variable */
+     char_u    di_flags;       /* flags (only used for variable) */
+-    char_u    di_key[1];      /* key (actually longer!) */
++    char_u    di_key[10];     /* key (actually longer!) */
+ };
+ 
+ typedef struct dictitem_S dictitem_T;
+diff -Naur vim70.orig/src/ui.c vim70/src/ui.c
+--- vim70.orig/src/ui.c        2006-03-27 19:15:09.000000000 +0000
++++ vim70/src/ui.c     2006-10-13 13:23:05.000000000 +0000
+@@ -1813,7 +1813,10 @@
+ #ifdef HAVE_DUP
+           /* Use stderr for stdin, also works for shell commands. */
+           close(0);
+-          dup(2);
++          if (dup(2) != 0) {
++              (void)fprintf(stderr, "dup failed\n");
++              exit(1);
++          }
+ #else
+           read_cmd_fd = 2;    /* read from stderr instead of stdin */
+ #endif
+diff -Naur vim70.orig/src/window.c vim70/src/window.c
+--- vim70.orig/src/window.c    2006-05-06 10:54:51.000000000 +0000
++++ vim70/src/window.c 2006-10-13 13:23:05.000000000 +0000
+@@ -3911,14 +3911,20 @@
+           if (mch_dirname(cwd, MAXPATHL) == OK)
+               globaldir = vim_strsave(cwd);
+       }
+-      mch_chdir((char *)curwin->w_localdir);
++      if (mch_chdir((char *)curwin->w_localdir) != 0) {
++          (void)fprintf(stderr, "mch_chdir failed\n");
++          exit(1);
++      }
+       shorten_fnames(TRUE);
+     }
+     else if (globaldir != NULL)
+     {
+       /* Window doesn't have a local directory and we are not in the global
+        * directory: Change to the global directory. */
+-      mch_chdir((char *)globaldir);
++      if (mch_chdir((char *)globaldir) != 0) {
++          (void)fprintf(stderr, "mch_chdir failed\n");
++          exit(1);
++      }
+       vim_free(globaldir);
+       globaldir = NULL;
+       shorten_fnames(TRUE);

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to