dwm: use ecalloc, prevent theoretical overflow e3b7e1d6
Hiltjo Posthuma · 2015-10-20 23:30 1 file(s) · +3 −6
dwm.c +3 −6
630 630
createmon(void) {
631 631
	Monitor *m;
632 632
633 -
	if(!(m = (Monitor *)calloc(1, sizeof(Monitor))))
634 -
		die("fatal: could not malloc() %u bytes\n", sizeof(Monitor));
633 +
	m = ecalloc(1, sizeof(Monitor));
635 634
	m->tagset[0] = m->tagset[1] = 1;
636 635
	m->mfact = mfact;
637 636
	m->nmaster = nmaster;
1007 1006
	Window trans = None;
1008 1007
	XWindowChanges wc;
1009 1008
1010 -
	if(!(c = calloc(1, sizeof(Client))))
1011 -
		die("fatal: could not malloc() %u bytes\n", sizeof(Client));
1009 +
	c = ecalloc(1, sizeof(Client));
1012 1010
	c->win = w;
1013 1011
	updatetitle(c);
1014 1012
	if(XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
1788 1786
1789 1787
		for(n = 0, m = mons; m; m = m->next, n++);
1790 1788
		/* only consider unique geometries as separate screens */
1791 -
		if(!(unique = (XineramaScreenInfo *)malloc(sizeof(XineramaScreenInfo) * nn)))
1792 -
			die("fatal: could not malloc() %u bytes\n", sizeof(XineramaScreenInfo) * nn);
1789 +
		unique = ecalloc(nn, sizeof(XineramaScreenInfo));
1793 1790
		for(i = 0, j = 0; i < nn; i++)
1794 1791
			if(isuniquegeom(unique, j, &info[i]))
1795 1792
				memcpy(&unique[j++], &info[i], sizeof(XineramaScreenInfo));