summaryrefslogtreecommitdiffstats
path: root/sqwebmail/sqwebmail.c
diff options
context:
space:
mode:
authorSam Varshavchik2013-11-24 21:12:06 -0500
committerSam Varshavchik2013-11-24 21:12:06 -0500
commit39ce29711f39afa228868f9b9cf2cc851fe6d3d7 (patch)
tree6020aca2c90683bb5023a69a8e963caa47d3d730 /sqwebmail/sqwebmail.c
parent4d91075b1b90f68527304b45bb26637a17e1454d (diff)
downloadcourier-libs-39ce29711f39afa228868f9b9cf2cc851fe6d3d7.tar.bz2
Fix compiler warning, unchecked return values.
Diffstat (limited to 'sqwebmail/sqwebmail.c')
-rw-r--r--sqwebmail/sqwebmail.c35
1 files changed, 26 insertions, 9 deletions
diff --git a/sqwebmail/sqwebmail.c b/sqwebmail/sqwebmail.c
index 3604568..8c4cfe1 100644
--- a/sqwebmail/sqwebmail.c
+++ b/sqwebmail/sqwebmail.c
@@ -2190,7 +2190,7 @@ int main(int argc, char **argv)
static int setuidgid(uid_t u, gid_t g, const char *dir, void *dummy)
{
- if (setgid(g) || setuid(u))
+ if (setgid(g) < 0 || setuid(u) < 0)
{
fprintf(stderr,
"CRIT: Cache - can't setuid/setgid to %u/%u\n",
@@ -2275,8 +2275,12 @@ time_t timeouthard=get_timeouthard();
if (*pi_malloced == 0)
{
free(pi_malloced);
- setgid(getgid());
- setuid(getuid());
+ if (setgid(getgid()) < 0 ||
+ setuid(getuid()) < 0)
+ {
+ perror("setuid/setgid");
+ exit(1);
+ }
output_form("printnocookie.html");
return;
}
@@ -2360,8 +2364,12 @@ time_t timeouthard=get_timeouthard();
|| last_time + timeoutsoft < current_time)
{
- setgid(getgid());
- setuid(getuid()); /* Drop root prevs */
+ if (setgid(getgid()) < 0 ||
+ setuid(getuid()) < 0) /* Drop root prevs */
+ {
+ perror("setuid/setgid");
+ exit(1);
+ }
if (chdir("/") < 0)
{
output_form("expired.html");
@@ -2599,14 +2607,23 @@ time_t timeouthard=get_timeouthard();
maildir_cache_cancel();
free(ubuf);
- setgid(getgid());
- setuid(getuid());
+ if (setgid(getgid()) < 0 ||
+ setuid(getuid()) < 0) /* Drop root prevs */
+ {
+ perror("setuid/setgid");
+ exit(1);
+ }
output_form("invalid.html"); /* Invalid login */
return;
}
- setgid(getgid());
- setuid(getuid());
+ if (setgid(getgid()) < 0 ||
+ setuid(getuid()) < 0) /* Drop root prevs */
+ {
+ perror("setuid/setgid");
+ exit(1);
+ }
+
if ( *(u=cgi("redirect")))
/* Redirection request to hide the referral tag */
{