Browse Source

fix label cache being double escaped on save
remove some old-style escaping

Andrew Dolgov 6 years ago
parent
commit
e4befe6bf4
3 changed files with 8 additions and 10 deletions
  1. 3 3
      classes/article.php
  2. 1 1
      classes/labels.php
  3. 4 6
      include/functions.php

+ 3 - 3
classes/article.php

@@ -976,12 +976,12 @@ class Article extends Handler_Protected {
 			$label_cache = $row["label_cache"];
 
 			if ($label_cache) {
-				$label_cache = json_decode($label_cache, true);
+				$tmp = json_decode($label_cache, true);
 
-				if ($label_cache["no-labels"] == 1)
+				if (!$tmp || $tmp["no-labels"] == 1)
 					return $rv;
 				else
-					return $label_cache;
+					return $tmp;
 			}
 		}
 

+ 1 - 1
classes/labels.php

@@ -62,7 +62,7 @@ class Labels
 		if (!$labels)
 			$labels = Article::get_article_labels($id);
 
-		$labels = db_escape_string(json_encode($labels));
+		$labels = json_encode($labels);
 
 		$sth = $pdo->prepare("UPDATE ttrss_user_entries SET
 			label_cache = ? WHERE ref_id = ? AND owner_uid = ?");

+ 4 - 6
include/functions.php

@@ -977,10 +977,6 @@
 			$error_code = 5;
 		}
 
-		if (db_escape_string("testTEST") != "testTEST") {
-			$error_code = 12;
-		}
-
 		return array("code" => $error_code, "message" => $ERRORS[$error_code]);
 	}
 
@@ -2218,6 +2214,8 @@
 	function filter_to_sql($filter, $owner_uid) {
 		$query = array();
 
+		$pdo = Db::pdo();
+
 		if (DB_TYPE == "pgsql")
 			$reg_qpart = "~";
 		else
@@ -2230,7 +2228,7 @@
 
 			if ($regexp_valid) {
 
-				$rule['reg_exp'] = db_escape_string($rule['reg_exp']);
+				$rule['reg_exp'] = $pdo->quote($rule['reg_exp']);
 
 				switch ($rule["type"]) {
 					case "title":
@@ -2263,7 +2261,7 @@
 				if (isset($rule['inverse'])) $qpart = "NOT ($qpart)";
 
 				if (isset($rule["feed_id"]) && $rule["feed_id"] > 0) {
-					$qpart .= " AND feed_id = " . db_escape_string($rule["feed_id"]);
+					$qpart .= " AND feed_id = " . $pdo->quote($rule["feed_id"]);
 				}
 
 				if (isset($rule["cat_id"])) {