Name: [FIX] website_sale: a garbage ?category= on a product page must not answer 500

State: Failed finished in 179m

PR State: open

PR Author: Roy Le

PR Author Email:

PR: #1286

Committer: Roy Le

Committer Email: roy.le@viindoo.com

Commit: 3169c099e6bdc28711a202a09426f809508cd34b

Description:

                                            [FIX] website_sale: a garbage ?category= on a product page must not answer 500

SQL-injection scanners request product pages with payloads in ?category=
(e.g. "1' AND 1=1 UNION SELECT NULL-- -"): int(category) raised
ValueError in _prepare_product_values and the page answered 500 - 1,031
times in one week on a production 16.0 shop. The earlier guard only
covered the shop listing. The category only drives the breadcrumb and the
back link here, so an invalid one is ignored, as upstream 19.0 does.
                                            

Branch: 17.0

Age:

Up-time:

Subbuilds Name State Detail
Build 416933 At install tests: from account to website_twitter 123m Succeed Log
Build 416934 Post install tests: step install all modules 52m Succeed Log
Build 416935 Post install tests: from account to hr_recruitment_survey 99m Succeed Log
Build 416936 Post install tests: from hr_skills to phone_validation 104m Succeed Log
Build 416937 Post install tests: from point_of_sale to purchase_requisition_stock 89m Succeed Log
Build 416938 Post install tests: from purchase_stock to test_limits 94m Succeed Log
Build 416939 Post install tests: from test_mail to to_purchase_line_numbering 109m Succeed Log
Build 416940 Post install tests: from to_purchase_order_advance to viin_approval_purpose_routing 169m Succeed Log
Build 416941 Post install tests: from viin_approval_sale to viin_product_approval_marketplace 114m Succeed Log
Build 416942 Post install tests: from viin_product_approval_marketplace_website_sale to web_unsplash 79m Succeed Log
Build 416943 Post install tests: from website to website_twitter 104m Failed Log
Create Date Level Message
09/19/2026 11:45:40 INFO
Updated repository Viindoo-tvtmaaddons
09/19/2026 11:45:40 INFO
Updated repository Viindoo-erponline-enterprise
09/19/2026 11:45:40 INFO
Updated repository Viindoo-branding
09/19/2026 11:45:40 INFO
Cloned repository Viindoo-odoo
09/19/2026 14:45:05 WARNING
Subbuild # 416943: odoo.addons.website.tests.test_ui.TestUi.browser: Tour link_tools failed at step Pick '/contactus (trigger: ul.ui-autocomplete li div:contains('/contactus (Contact Us)')) { "content": "Check that link was updated and link content is synced with URL", "trigger": "iframe .s_text_image p a[href='http://callmemaybe.com']:contains('callmemaybe.com')" }, { "content": "Edit link label", "trigger": "iframe .s_text_image p a", "run": "[function]" }, { "content": "Enter partial URL", "trigger": "#o_link_dialog_url_input", "run": "text /contact" }, ----- FAILING STEP ----- { "content": "Pick '/contactus", "trigger": "ul.ui-autocomplete li div:contains('/contactus (Contact Us)')" }, ----------------------- { "content": "Check that links's href and label were updated", "trigger": "iframe .s_text_image p a[href='/contactus']:contains('/contactus')", "isCheck": true }, { "content": "Enter a non-existent URL", "trigger": "#o_link_dialog_url_input", "run": "text /this-address-does-not-exist" }, { "content": "Check that the link's href was updated and click on it", "trigger": "iframe .s_text_image p a[href='/this-address-does-not-exist']" },
09/19/2026 14:45:05 ERROR
Subbuild # 416943: odoo.addons.website.tests.test_ui.TestUi.browser: Tour link_tools failed at step Pick '/contactus (trigger: ul.ui-autocomplete li div:contains('/contactus (Contact Us)'))
09/19/2026 14:45:05 ERROR
Subbuild # 416943: odoo.addons.website.tests.test_ui: FAIL: TestUi.test_15_website_link_tools Traceback (most recent call last): File "/data/build/rb-3169c09-224943/addons/website/tests/test_ui.py", line 471, in test_15_website_link_tools self.start_tour(self.env['website'].get_client_action_url('/'), 'link_tools', login="admin") File "/data/build/rb-3169c09-224943/odoo/tests/common.py", line 2231, in start_tour return self.browser_js(url_path=url_path, code=code, ready=ready, **kwargs) File "/data/build/rb-3169c09-224943/odoo/tests/common.py", line 2208, in browser_js self.fail('%s\n\n%s' % (message, error)) AssertionError: The test code "odoo.startTour('link_tools', {"stepDelay": 0, "keepWatchBrowser": false, "startUrl": "/web#action=website.website_preview&path=%2F"})" failed Tour link_tools failed at step Pick '/contactus (trigger: ul.ui-autocomplete li div:contains('/contactus (Contact Us)'))
09/19/2026 14:45:05 ERROR
Subbuild # 416943: odoo.tests.result: 1 failed, 0 error(s) of 536 tests when loading database 'rb-3169c09-224943-416943'