if(stat(a->filename, &st) == -1)
return -1;
-
- if((fpin = fopen(a->filename, "r")) && (fpout = safe_fopen(tempfile, "w")))
+
+ if((fpin = fopen(a->filename, "r")) && (fpout = safe_fopen(tempfile, "w"))) /* __FOPEN_CHECKED__ */
{
mutt_copy_stream (fpin, fpout);
mutt_str_replace (&a->filename, tempfile);
if (flags == M_SAVE_APPEND)
s.fpout = fopen (path, "a");
else if (flags == M_SAVE_OVERWRITE)
- s.fpout = fopen (path, "w");
+ s.fpout = fopen (path, "w"); /* __FOPEN_CHECKED__ */
else
s.fpout = safe_fopen (path, "w");
if (s.fpout == NULL)
if (flags == M_SAVE_APPEND)
s.fpout = fopen (path, "a");
else if (flags == M_SAVE_OVERWRITE)
- s.fpout = fopen (path, "w");
+ s.fpout = fopen (path, "w"); /* __FOPEN_CHECKED__ */
else
s.fpout = safe_fopen (path, "w");
--- /dev/null
+#!/bin/sh --
+
+#
+# grep for some things which may look like security problems.
+#
+
+TMPFILE="`mktemp fopen.XXXXXX`" || exit 1
+grep -n '\<fopen.*".*w' *.c */*.c | fgrep -v __FOPEN_CHECKED__ > $TMPFILE
+test -s $TMPFILE && {
+ echo "WARNING: UNCHECKED FOPEN CALLS FOUND" ;
+ cat $TMPFILE ;
+ exit 1;
+}
+
+rm -f $TMPFILE
+exit 0
FILE *f;
int i;
- if ((f = fopen (path, "w")) == NULL)
+ if ((f = fopen (path, "w")) == NULL) /* __FOPEN_CHECKED__ */
{
addstr (strerror (errno));
addch ('\n');
case OP_VERIFY_KEY:
mutt_mktemp (tempfile);
- if ((devnull = fopen ("/dev/null", "w")) == NULL)
+ if ((devnull = fopen ("/dev/null", "w")) == NULL) /* __FOPEN_CHECKED__ */
{
mutt_perror _("Can't open /dev/null");
break;
return NULL;
}
- if ((devnull = fopen ("/dev/null", "w")) == NULL)
+ if ((devnull = fopen ("/dev/null", "w")) == NULL) /* __FOPEN_CHECKED__ */
{
mutt_perror _("Can't open /dev/null");
fclose (tempfp);