mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
xdrgen: improve error reporting for invalid void declarations
RFC 4506 defines void as a zero-length type that may appear only as union arms or as program argument/result types. It cannot be declared with an identifier, so constructs like "typedef void temp;" are not valid XDR. Previously, xdrgen raised a NotImplementedError when it encountered a void declaration in a typedef. Which was misleading, as the problem is an invalid RPC specification rather than missing functionality in xdrgen. This patch replaces the NotImplementedError for _XdrVoid in typedef handling with a clearer ValueError that specifies incorrect use of void in the XDR input, making it clear that the issue lies in the RPC specification being parsed. Signed-off-by: Khushal Chitturi <kc9282016@gmail.com> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
committed by
Chuck Lever
parent
1f1fe81acb
commit
87a6e3b6c4
@@ -58,7 +58,7 @@ def emit_typedef_declaration(environment: Environment, node: _XdrDeclaration) ->
|
||||
elif isinstance(node, _XdrOptionalData):
|
||||
raise NotImplementedError("<optional_data> typedef not yet implemented")
|
||||
elif isinstance(node, _XdrVoid):
|
||||
raise NotImplementedError("<void> typedef not yet implemented")
|
||||
raise ValueError("invalid void usage in RPC Specification")
|
||||
else:
|
||||
raise NotImplementedError("typedef: type not recognized")
|
||||
|
||||
@@ -104,7 +104,7 @@ def emit_type_definition(environment: Environment, node: _XdrDeclaration) -> Non
|
||||
elif isinstance(node, _XdrOptionalData):
|
||||
raise NotImplementedError("<optional_data> typedef not yet implemented")
|
||||
elif isinstance(node, _XdrVoid):
|
||||
raise NotImplementedError("<void> typedef not yet implemented")
|
||||
raise ValueError("invalid void usage in RPC Specification")
|
||||
else:
|
||||
raise NotImplementedError("typedef: type not recognized")
|
||||
|
||||
@@ -165,7 +165,7 @@ def emit_typedef_decoder(environment: Environment, node: _XdrDeclaration) -> Non
|
||||
elif isinstance(node, _XdrOptionalData):
|
||||
raise NotImplementedError("<optional_data> typedef not yet implemented")
|
||||
elif isinstance(node, _XdrVoid):
|
||||
raise NotImplementedError("<void> typedef not yet implemented")
|
||||
raise ValueError("invalid void usage in RPC Specification")
|
||||
else:
|
||||
raise NotImplementedError("typedef: type not recognized")
|
||||
|
||||
@@ -225,7 +225,7 @@ def emit_typedef_encoder(environment: Environment, node: _XdrDeclaration) -> Non
|
||||
elif isinstance(node, _XdrOptionalData):
|
||||
raise NotImplementedError("<optional_data> typedef not yet implemented")
|
||||
elif isinstance(node, _XdrVoid):
|
||||
raise NotImplementedError("<void> typedef not yet implemented")
|
||||
raise ValueError("invalid void usage in RPC Specification")
|
||||
else:
|
||||
raise NotImplementedError("typedef: type not recognized")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user