diff --git a/lib/action.php b/lib/action.php index a4cae7066c..06d3901d14 100644 --- a/lib/action.php +++ b/lib/action.php @@ -40,11 +40,7 @@ class Action { // lawsuit } function handle($argarray) { - $strip = get_magic_quotes_gpc(); - $this->args = array(); - foreach ($argarray as $k => $v) { - $this->args[$k] = ($strip) ? stripslashes($v) : $v; - } + $this->args =& common_copy_args($argarray); } function boolean($key, $def=false) { diff --git a/lib/openid.php b/lib/openid.php index d044aa7624..9adf8e9f71 100644 --- a/lib/openid.php +++ b/lib/openid.php @@ -95,7 +95,7 @@ function oid_get_user($openid_url) { function oid_check_immediate($openid_url, $backto=NULL) { if (!$backto) { $action = $_REQUEST['action']; - $args = clone($_GET); + $args = common_copy_args($_GET); unset($args['action']); $backto = common_local_url($action, $args); } diff --git a/lib/util.php b/lib/util.php index eb019ac7ee..a4c30cbe4e 100644 --- a/lib/util.php +++ b/lib/util.php @@ -887,3 +887,12 @@ function common_config($main, $sub) { global $config; return $config[$main][$sub]; } + +function common_copy_args($from) { + $to = array(); + $strip = get_magic_quotes_gpc(); + foreach ($from as $k => $v) { + $to[$k] = ($strip) ? stripslashes($v) : $v; + } + return $to; +} \ No newline at end of file