Skip to content

Commit

Permalink
Replace extract() with proper check (#297)
Browse files Browse the repository at this point in the history
* Replace extract() with proper check 28d1ca6

extract may lead to overwriting other variable, which can lead to
disaster when the function is called over used supplied data.

Fixes #252

* Prevent undefined index warning b754708

* Code format eec434e

* Remove more extract calls 4554531
  • Loading branch information
nitriques authored Oct 24, 2017
1 parent 0c889e9 commit e36619a
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 18 deletions.
8 changes: 4 additions & 4 deletions fields/field.memberemail.php
Original file line number Diff line number Diff line change
Expand Up @@ -56,10 +56,10 @@ public function createTable(){
-------------------------------------------------------------------------*/

public function fetchMemberIDBy($needle, $member_id = null) {
if(is_array($needle)) {
extract($needle);
}
else {
$email = null;
if (is_array($needle) && !empty($needle['email'])) {
$emaill = $needle['email'];
} else {
$email = $needle;
}

Expand Down
14 changes: 8 additions & 6 deletions fields/field.memberpassword.php
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ public function createTable(){
*/
public function fetchMemberIDBy($needle, $member_id = null, $isHashed = false) {
$valid = true;
if(is_array($needle)) {
extract($needle);
}
else {
$password = null;
if (is_array($needle) && !empty($needle['password'])) {
$password = $needle['password'];
} else {
$password = $needle;
}

Expand Down Expand Up @@ -155,15 +155,17 @@ public function fetchMemberIDBy($needle, $member_id = null, $isHashed = false) {
}

// Check that if the password has been reset that it is still valid
if($valid && $data['reset'] == 'yes') {
if($valid && !empty($data['reset']) && $data['reset'] == 'yes') {
$valid_id = Symphony::Database()->fetchVar('entry_id', 0, sprintf("
SELECT `entry_id`
FROM `tbl_entries_data_%d`
WHERE `entry_id` = %d
AND DATE_FORMAT(expires, '%%Y-%%m-%%d %%H:%%i:%%s') > '%s'
LIMIT 1
",
$this->get('id'), $data['entry_id'], DateTimeObj::get('Y-m-d H:i:s', strtotime('now - '. $this->get('code_expiry')))
$this->get('id'),
$data['entry_id'],
DateTimeObj::get('Y-m-d H:i:s', strtotime('now - '. $this->get('code_expiry')))
));

// If we didn't get an entry_id back, then it's because it was expired
Expand Down
8 changes: 4 additions & 4 deletions fields/field.memberusername.php
Original file line number Diff line number Diff line change
Expand Up @@ -64,10 +64,10 @@ public function createTable(){
* @return Entry
*/
public function fetchMemberIDBy($needle, $member_id = null) {
if(is_array($needle)) {
extract($needle);
}
else {
$username = null;
if (is_array($needle) && !empty($needle['username'])) {
$username = $needle['username'];
} else {
$username = $needle;
}

Expand Down
8 changes: 4 additions & 4 deletions lib/member.symphony.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
* @return Field
*/
public function setIdentityField(array $credentials, $simplified = true) {
if($simplified) {
extract($credentials);
}
else {
if ($simplified) {
$username = empty($credentials['username']) ? null : $credentials['username'];
$email = empty($credentials['email']) ? null : $credentials['email'];
} else {
// Map POST data to simple terms
if(isset($credentials[$this->section->getFieldHandle('identity')])) {
$username = $credentials[$this->section->getFieldHandle('identity')];
Expand Down

0 comments on commit e36619a

Please sign in to comment.