From d7078d952a5dc1ecd875cb3c610d90f701c1b493 Mon Sep 17 00:00:00 2001 From: Graham Cole <chckens@sucs.org> Date: Sat, 15 Nov 2008 19:18:54 +0000 Subject: [PATCH] check that feeds are at least readable before putting them into database/planet --- components/options.php | 10 +++++++++- templates/options.tpl | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/components/options.php b/components/options.php index d472426..bdaea2c 100644 --- a/components/options.php +++ b/components/options.php @@ -181,12 +181,18 @@ function changeBlogFeed($type, $feed, $syndicate) { $syndicate = "f"; } + // try to read up to 100KB of the provided feed uri + if (@file_get_contents($feed,FALSE,null,0,100000) == FALSE) { + trigger_error("Unable to read from provided blog feed URL", E_USER_WARNING); + return FALSE; + } + if ($sucsDB->Execute("UPDATE members SET blogfeed=?,syndicateblog=? WHERE username=?", array($feed, $syndicate, $session->username)) == FALSE) { return FALSE; } - //fixme: ensure sanity(/validity?) of provided uris to avoid screwing up planet's config + include("planetconfig.php"); return TRUE; } @@ -269,6 +275,8 @@ if ($session->loggedin === TRUE) { case 'changeblogfeed' : if (changeBlogFeed($_POST['blogtype'], $_POST['bloguri'], $_POST['syndicateblog'])){ message_flash("Blog Feed Updated"); + } else { + trigger_error("Blog Feed has not been updated", E_USER_NOTICE); } break; case 'renew' : diff --git a/templates/options.tpl b/templates/options.tpl index b638d17..6195c51 100644 --- a/templates/options.tpl +++ b/templates/options.tpl @@ -186,7 +186,7 @@ {if $sucsblogger} <input type="radio" name="blogtype" value="custom" {if not $sucsblogfeed}checked="checked"{/if} /> {/if} - <input type="text" name="bloguri" id="bloguri" style="width:90%;" value="{$member.blogfeed}" /> + <input type="text" name="bloguri" id="bloguri" style="width:90%;" {if $member.blogfeed}value="{$member.blogfeed}"{/if} /> </span> </div> <div class="row"> -- GitLab