View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000807 | LDMud 3.3 | Efuns | public | 2012-07-11 21:19 | 2021-04-16 21:53 |
| Reporter | abathur | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | N/A |
| Status | closed | Resolution | won't fix | ||
| Product Version | 3.3.719 | ||||
| Summary | 0000807: Improve driver support for H_DEFAULT_METHOD in shadowing objects | ||||
| Description | I attempted to implement a default_method in a shadow. The driver appears to only pass the call to the shadow's default_method when the call has completely failed to resolve in the object and any of its other shadows. This would be in opposition to the anticipated behavior wherein the driver attempts to resolve a call to an object with a shadow defining a default method by passing to the appropriate lfun, if defined, before passing to the shadow's default method which must then return 0 before the call would be resolved in the underlying object. I couldn't quite decide if this is a bug or a feature request, so i've filed as the latter. | ||||
| Tags | No tags attached. | ||||
|
|
I suppose that default methods in shadows were an intriguing feature. But catching each call to the underlying object has some security implications which must be dealt with: Nomask functions must be ignored (which is unusual, because nomask handling has otherwise nothing to do with call_others). Also current master->query_allow_shadow() implementations check for forbidden functions in the shadow, they then need to check for the default method, too. |
|
|
I was thinking a new privilege violation might be a sane way to avoid opening muds defining the default method hook to unexpected security issues or malfunctions, but I agree that the other security problems are significant. |
|
|
We feel that such catch-all shadows are too dangerous and not worth the effort to implement in LDMud. Beside the already mentioned security implications also any mistake in the shadow can render the underlying object unusable. Therefore I'm closing this ticket. |