printf("%s\n", s);
}
/* daemon_run(s); the daemon can be called here, but we need to have a buffer in daemon_run() and we need to tell it when everything is ready to be sent */
- strcpy(tmpstring1, s);
+ memset(tmpstring1,0,TEXT_BUFFER_SIZE);
+ memset(tmpstring2,0,TEXT_BUFFER_SIZE);
+ strncpy(tmpstring1, s, TEXT_BUFFER_SIZE-1);
pos = 0;
added = 0;
char space[2];
for (i2 = 0;
i2 < (8 - (1 + pos) % 8) && added <= max;
i2++) {
- tmpstring2[pos + i2] = ' ';
+ /*
+ if ( pos + i2 > TEXT_BUFFER_SIZE-1 )
+ fprintf(stderr,"buffer overrun detected\n");
+ */
+ tmpstring2[ MIN(pos + i2, TEXT_BUFFER_SIZE-1) ] = ' '; /* guard against overrun */
added++;
}
pos += i2;
} else {
if (tmpstring1[i] != 9) {
- tmpstring2[pos] = tmpstring1[i];
+ /*
+ if ( pos > TEXT_BUFFER_SIZE-1 )
+ fprintf(stderr,"buffer overrun detected\n");
+ */
+ tmpstring2[ MIN(pos, TEXT_BUFFER_SIZE-1) ] = tmpstring1[i]; /* guard against overrun */
pos++;
}
}
#define CRIT_ERR(s, varargs...) \
{ fprintf(stderr, "Conky: " s "\n", ##varargs); exit(EXIT_FAILURE); }
+#define MIN(a,b) (a>b ? b : a)
+#define MAX(a,b) (a<b ? b : a)
+
struct i8k_struct {
char *version;
char *bios;