[Pdbg] [PATCH 05/10] pdbg: Tidy up putnia/putmsr

Alistair Popple alistair at popple.id.au
Fri Jun 15 11:26:14 AEST 2018


On Thursday, 31 May 2018 3:29:10 PM AEST Rashmica Gupta wrote:
> The number of arguments required for these functions is wrong -
> it requires 2 arguments for putnia and putmsr, and the second one
> is written. The code has obviously been copy/pasted from getgpr/getspr
> functions where you need to supply which register and then the data.

The patch looks ok but I'm having trouble making sense of the commit message.

Perhaps something like the below might be clearer?

"putnia and putmsr only require 1 argument but the code currently checks for 2
arguments and gets the data from the second argument which is wrong. It has
obviously been copy/pasted from putgpr/putspr which do require 2 arguments. Fix
this by reducing required arguments to 1 and getting the data from there."

- Alistair

> Signed-off-by: Rashmica Gupta <rashmica.g at gmail.com>
> ---
>  src/reg.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/reg.c b/src/reg.c
> index 416236b..e252ab8 100644
> --- a/src/reg.c
> +++ b/src/reg.c
> @@ -152,13 +152,13 @@ int handle_nia(int optind, int argc, char *argv[])
>  	if (strcmp(argv[optind], "putnia") == 0) {
>  		uint64_t data;
>  
> -		if (optind + 2 >= argc) {
> +		if (optind + 1 >= argc) {
>  			printf("%s: command '%s' requires data\n", argv[0], argv[optind]);
>  			return -1;
>  		}
>  
>  		errno = 0;
> -		data = strtoull(argv[optind + 2], &endptr, 0);
> +		data = strtoull(argv[optind + 1], &endptr, 0);
>  		if (errno || *endptr != '\0') {
>  			printf("%s: command '%s' couldn't parse data '%s'\n",
>  				argv[0], argv[optind], argv[optind + 1]);
> @@ -221,13 +221,13 @@ int handle_msr(int optind, int argc, char *argv[])
>  	if (strcmp(argv[optind], "putmsr") == 0) {
>  		uint64_t data;
>  
> -		if (optind + 2 >= argc) {
> +		if (optind + 1 >= argc) {
>  			printf("%s: command '%s' requires data\n", argv[0], argv[optind]);
>  			return -1;
>  		}
>  
>  		errno = 0;
> -		data = strtoull(argv[optind + 2], &endptr, 0);
> +		data = strtoull(argv[optind + 1], &endptr, 0);
>  		if (errno || *endptr != '\0') {
>  			printf("%s: command '%s' couldn't parse data '%s'\n",
>  				argv[0], argv[optind], argv[optind + 1]);
> 




More information about the Pdbg mailing list