<div dir="ltr"><div><div><div><font size="1">Hola, ho individuato un bug nella app bookmarks di nextcloud.<br></font></div><div><font size="1">Il bug non sembra essere troppo difficile da risolvere.<br></font></div><div><font size="1">Si dovrebbe trattare di un banale errore di sintassi di sql che uno più pratico di me dovrebbe individuare facilmente.<br></font></div><div><font size="1">La query incriminata è questa:<br></font></div><div><font size="1"><br>$query = $db->prepareQuery("<br>DELETE FROM `*PREFIX*bookmarks_tags` as `tgs` WHERE `tgs`.`tag` = ?<br>AND exists( SELECT `id` FROM `*PREFIX*bookmarks` WHERE `user_id` = ?<br>AND `tgs`.`bookmark_id` = `id`)<br>AND exists( SELECT `t`.`tag` FROM `*PREFIX*bookmarks_tags` `t` where `t`.`tag` = ?<br>AND `tgs`.`bookmark_id` = `t`.`bookmark_id`)");<br><br></font></div><div><font size="1">Sinceramente non capisco dove salta fuori `t` nel quarto AND.<br></font></div><div><font size="1"><br></font></div><font size="1">Tabella bookmarks<br><br><img alt="Immagine incorporata 1" src="cid:ii_1586c6c2b5238e13" height="26" width="444"><br><br></font></div><font size="1">Tabella bookmarks_tags<br><img src="cid:ii_1586c6d65441eec2" alt="Immagine incorporata 2" height="60" width="375"><br><br></font></div><font size="1">L'errore che restiruisce nextcloud è<br><br><br>{"reqId":"Q3\/GEufci9bSqiuZc\/qc","remoteAddr":"192.168.2.27","app":"index","message":"Exception: <br>    {\"Exception\":\"Doctrine\\\\DBAL\\\\Exception\\\\SyntaxErrorException\",\"Message\":\"An exception occurred while executing <br><br>'\\n\\t\\t\\tDELETE FROM `oc_bookmarks_tags` as `tgs` WHERE `tgs`.`tag` = ?\\n\\t\\t\\t<br>AND exists( SELECT `id` FROM `oc_bookmarks`<br>WHERE `user_id` = ?\\n\\t\\t\\tAND `tgs`.`bookmark_id` = `id`)\\n\\t\\t\\t<br>AND exists<br>    ( SELECT `t`.`tag` <br>    FROM `oc_bookmarks_tags` `t` where `t`.`tag` = ?\\n\\t\\t\\t<br>    AND `tgs`.`bookmark_id` = `t`.`bookmark_id`)' <br>    with params [\\\"test1\\\", \\\"admin\\\", \\\"test1\\\"]:\\n\\n<br><br>SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near <br><br>'as `tgs` WHERE `tgs`.`tag` = 'test1'\\n\\t\\t\\tAND exists( SELECT `id` FROM `oc_bookmar'<br></font></div>