Skip to content

ScalarCmdV3 path does not reject commands targeting disabled output types #871

@qdot

Description

@qdot

Description

Commit 839cbe3 added an is_disabled() guard to TryFromDeviceAttributes<OutputCmdV4> in checked_output_cmd.rs, correctly rejecting commands that target user-disabled output types. However, the ScalarCmdV3 path in checked_output_vec_cmd.rs was not covered by this fix.

The v3 scalar path calls feature.feature().output() / get_output() which returns output properties for disabled outputs (they are still present in ServerDeviceFeature). No is_disabled() check is performed, so a client using the v3 protocol can send commands to output types that the user has explicitly disabled in their device config.

Files

  • crates/buttplug_server/src/message/v4/checked_output_cmd.rs — has the guard (line ~124)
  • crates/buttplug_server/src/message/v4/checked_output_vec_cmd.rs — missing the guard

Expected behavior

ScalarCmdV3 commands targeting a disabled output type should be rejected with a MessageNotSupported error, matching the OutputCmdV4 behavior.

Context

Related fix: 839cbe3 ("Reject server-side commands targeting disabled output types")

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions