diff options
author | Richard Grenville <pyxlcy@gmail.com> | 2012-11-04 19:14:21 +0800 |
---|---|---|
committer | Richard Grenville <pyxlcy@gmail.com> | 2012-11-04 19:44:14 +0800 |
commit | fe5537df9e3b3b443a8464c2df4e0a70c7900e2b (patch) | |
tree | 10565f3faf7135c2693162231f6b163e69a2d83a | |
parent | 86103c5cebcd962156edebe7f58fec8786d84277 (diff) | |
download | tdebase-fe5537df9e3b3b443a8464c2df4e0a70c7900e2b.tar.gz tdebase-fe5537df9e3b3b443a8464c2df4e0a70c7900e2b.zip |
Bug fix #61: Silence a warning
- Silence a FORTIFY_SOURCE warning. Thanks to @smlx for reporting.
- Add -O2 -D_FORTIFY_SOURCE=2 to default CFLAGS in Makefile.
- Use a cleaner way to resolve the writing-to-freed-memory issue
mentioned in last commit.
-rw-r--r-- | compton.c | 24 |
1 files changed, 12 insertions, 12 deletions
@@ -1526,21 +1526,19 @@ paint_preprocess(Display *dpy, win *list) { } + // Avoid setting w->to_paint if w is to be freed + bool destroyed = (w->opacity_tgt == w->opacity && w->destroyed); + if (to_paint) { w->prev_trans = t; t = w; - w->to_paint = to_paint; } else { - // Avoid setting w->to_paint if w is to be freed - if (!(w->opacity_tgt == w->opacity && w->destroyed)) { - check_fade_fin(dpy, w); - w->to_paint = to_paint; - } - else { - check_fade_fin(dpy, w); - } + check_fade_fin(dpy, w); } + + if (!destroyed) + w->to_paint = to_paint; } return t; @@ -3567,9 +3565,11 @@ fork_after(void) { setsid(); - freopen("/dev/null", "r", stdin); - freopen("/dev/null", "w", stdout); - freopen("/dev/null", "w", stderr); + // Mainly to suppress the _FORTIFY_SOURCE warning + if (!freopen("/dev/null", "r", stdin) + || !freopen("/dev/null", "w", stdout) + || !freopen("/dev/null", "w", stderr)) + fprintf(stderr, "fork_after(): freopen() failed."); } #ifdef CONFIG_LIBCONFIG |