FishNet icon indicating copy to clipboard operation
FishNet copied to clipboard

Nullable DespawnType? can both be not null and have no value

Open dwal02 opened this issue 1 year ago • 3 comments

Important

If General, Description, and Replication are not completed the issue will be closed immediately.

General Unity version: 2022.3.14f1 Fish-Networking version: Unsure. Directly pulled from GitHub. 4.3.5R ? Discord link: ** Above, post a link from our Discord where you troubleshot the issue (on Discord click the three dots next to the message, then Copy Message Link). Issue may be closed out if this is not included.

Description A clear and concise description of what the bug is.

When calling Despawn, a missing despawnType parameter somewhere along the chain causes despawnType to both be not equal to null and have no value, causing a crash inside ServerManager.Despawn(NetworkObject, DespawnType).

Replication Steps to reproduce the behavior:

Call Despawn(networkObject) on a non-server-owned object within a ServerRPC within a NetworkBehaviour, without the despawnType parameter.

Expected behavior

This is easily resolvable by replacing resolvedDespawnType = (despawnType == null) on line 147 of ServerManager.QOL.cs with resolvedDespawnType = (despawnType == null || !despawnType.HasValue) or resolvedDespawnType = (!despawnType.HasValue)

Screenshots

DespawnTypeBug

dwal02 avatar Jul 02 '24 05:07 dwal02

Wondering if that's a Unity bug. The compiler is supposed to replace null check with HasValue.

Making the change to only check HasValue should suffice either way.

On Tue, Jul 2, 2024, 1:05 AM dwal02 @.***> wrote:

Important

If General, Description, and Replication are not completed the issue will be closed immediately.

General Unity version: 2022.3.14f1 Fish-Networking version: Unsure. Directly pulled from GitHub. 4.3.5R ? Discord link: ** Above, post a link from our Discord where you troubleshot the issue (on Discord click the three dots next to the message, then Copy Message Link). Issue may be closed out if this is not included.

Description A clear and concise description of what the bug is.

When calling Despawn, a missing despawnType parameter somewhere along the chain causes despawnType to both be not equal to null and have no value, causing a crash inside ServerManager.Despawn(NetworkObject, DespawnType).

Replication Steps to reproduce the behavior:

Call Despawn(networkObject) within a ServerRPC within a NetworkBehaviour (without the despawnType parameter)

Expected behavior

This is easily resolvable by replacing resolvedDespawnType = (despawnType == null) on line 147 of ServerManager.QOL.cs with resolvedDespawnType = (despawnType == null || !despawnType.HasValue) or resolvedDespawnType = (!despawnType.HasValue)

Screenshots

DespawnTypeBug.png (view on web) https://github.com/FirstGearGames/FishNet/assets/18695173/2edd3879-26b4-4a52-b99f-2c8d901d8893

— Reply to this email directly, view it on GitHub https://github.com/FirstGearGames/FishNet/issues/708, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGPJC3XFQC5CEBQRPXFIMBTZKIYJ7AVCNFSM6AAAAABKGYK4YOVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM4DKMRTG4ZTSNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

FirstGearGames avatar Jul 02 '24 23:07 FirstGearGames

Definitely a Unity bug. I'll get it resolved in 4.3.8.

FirstGearGames avatar Jul 05 '24 13:07 FirstGearGames

Cheers !


From: FirstGearGames @.> Sent: Friday, July 5, 2024 11:53:50 PM To: FirstGearGames/FishNet @.> Cc: dwal02 @.>; Author @.> Subject: Re: [FirstGearGames/FishNet] Nullable DespawnType? can both be not null and have no value (Issue #708)

Definitely a Unity bug. I'll get it resolved in 4.3.8.

— Reply to this email directly, view it on GitHubhttps://github.com/FirstGearGames/FishNet/issues/708#issuecomment-2210920544, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEOUIBNTMHPE3ZS43IIZLODZK2QO5AVCNFSM6AAAAABKGYK4YOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJQHEZDANJUGQ. You are receiving this because you authored the thread.Message ID: @.***>

dwal02 avatar Jul 05 '24 13:07 dwal02