Merge pull request #6 from fuzxxl/master

Fix compilation with clang, work around double free
master
Alan Dipert 2013-03-09 12:35:43 +07:00
commit c89d60c79b
5 changed files with 24 additions and 15 deletions

@ -741,13 +741,13 @@ XGCValues values;
hw->html.bgclip_SAVE=None;
if (NoBodyImages(hw)) {
return;
return 0;
}
/* ??? Why is this here? */
hw->html.view->core.background_pixel = hw->html.background_SAVE ;
return;
return 0;
}
int NoBodyImages(Widget w) {
@ -770,7 +770,7 @@ unsigned long valuemask;
XGCValues values;
if (!bgname || !*bgname || !(hw->html.drawGC)) {
return;
return 0;
}
if (hw->html.delay_images==True || currently_delaying_images==1) {
@ -814,7 +814,7 @@ XGCValues values;
}
}
return;
return 0;
}
@ -832,7 +832,7 @@ hw_do_color(Widget w, char *att, char *cname)
int i;
if (!att || !*att || !cname || !*cname) {
return;
return -1;
}
cmap = hw->core.colormap;
@ -847,14 +847,14 @@ hw_do_color(Widget w, char *att, char *cname)
if(!allocated){
if(*val=='#') val++;
if (!*val) {
return;
return -1;
}
if (strlen(val)>=6) {
/* Must be valid hex */
for (i=0; i<6; i++) {
if (!strchr("0123456789AaBbCcDdEeFf",val[i])) {
return;
return -1;
}
}
@ -875,10 +875,10 @@ hw_do_color(Widget w, char *att, char *cname)
col.flags = DoRed | DoGreen | DoBlue;
if (!XAllocColor(XtDisplay(w),cmap,&col)) {
return;
return -1;
}
} else {
return;
return -1;
}
}
@ -910,7 +910,7 @@ hw_do_color(Widget w, char *att, char *cname)
hw->html.activeAnchor_fg = col.pixel;
}
return;
return -1;
}
void

@ -2706,7 +2706,7 @@ int extra;
if ((*mptr)->is_end) {
/* end of table */
return;
return 0;
}
extra = 10;
@ -2715,7 +2715,7 @@ int extra;
SetElement(hw, E_TABLE, currentFont, *x, *y, (char *) mptr, NULL, NULL, IMAGE_DEFAULT_BORDER);
if (!Current->table_data) {
/* no table */
return;
return 0;
}
Current->alignment = ALIGN_MIDDLE;
Current->width = Current->table_data->width;

@ -1078,11 +1078,11 @@ int baseLine;
int yy;
if (field->type == F_NONE) { /* nothing to display in field */
return;
return -1;
}
if (field->type != F_TEXT) { /* routine only does text at this time */
return;
return -1;
}
/* adjust for aesthetic surounding space */

@ -960,7 +960,7 @@ int NNTPgetarthdrs(char *art,char **ref, char **grp, char **subj, char **from)
char ch = *p++ = HTGetCharacter ();
if (ch==(char)EOF) {
abort_socket(); /* End of file, close socket */
return; /* End of file on response */
return -1; /* End of file on response */
}
if ((ch == LF)

@ -71,6 +71,7 @@
#include <signal.h>
#include <sys/utsname.h>
#include <string.h>
#include <malloc.h>
/* swp */
#define _KCMS_H_
@ -231,6 +232,14 @@ main (int argc, char **argv, char **envp)
/* Since we're doing lots of TCP, just ignore SIGPIPE altogether. */
signal (SIGPIPE, SIG_IGN);
#ifdef M_CHECK_ACTION
/* some code here has the habit of freeing pointers twice. The glibc
catches this and causes the program to abort. In order to make the
code somehow work, we turn aborting the program off. */
mallopt(M_CHECK_ACTION,5);
#endif
InitChildProcessor();
MoCCIPreInitialize();