-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.74 2008/04/26 15:50:56 fabiankeil Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.75 2008/04/27 13:52:52 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Revisions :
* $Log: cgisimple.c,v $
+ * Revision 1.75 2008/04/27 13:52:52 fabiankeil
+ * Move CGI file loading code into load_file() and
+ * add checks for unexpected errors.
+ *
* Revision 1.74 2008/04/26 15:50:56 fabiankeil
* Fix macro name in cgi_show_file() error path.
*
{
FILE *fp;
int ret;
+ jb_err err = JB_ERR_OK;
fp = fopen(filename, "rb");
if (NULL == fp)
*buffer = (char *)zalloc(*length + 1);
if (NULL == *buffer)
{
- fclose(fp);
- return JB_ERR_MEMORY;
+ err = JB_ERR_MEMORY;
}
-
- if (!fread(*buffer, *length, 1, fp))
+ else if (!fread(*buffer, *length, 1, fp))
{
/*
* May happen if the file size changes between fseek() and
*/
log_error(LOG_LEVEL_ERROR,
"Couldn't completely read file %s.", filename);
- fclose(fp);
- return JB_ERR_FILE;
+ err = JB_ERR_FILE;
}
fclose(fp);
- return JB_ERR_OK;
+ return err;
}