Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Wrong return value in aarch64 disassembler operation_to_str() function

Ouverte Adaptée aux débutants
#8,589 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
78/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
c

Piste de recherche

Localisez operation_to_str et aarch64_disassemble, puis examinez comment la chaîne de l’opération est sélectionnée et comment NULL est géré. Examinez test.c, qui appelle directement operation_to_str, et vérifiez les contrôles de l’enum et du tableau de chaînes. C’est terminé lorsque le comportement de retour est cohérent avec celui des autres fonctions to-string sans casser l’appelant direct existant.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

The aarch64_get_operation calls operation_to_str which doesn't return a NULL value, as is common for other to string functions in the source code.

But aarch64_disassemble then verifies for NULL value here, which is always false:

	const char *operation = aarch64_get_operation(instruction);
	if (operation == NULL)
		return FAILED_TO_DISASSEMBLE_OPERATION;

I think the fix should be operation_to_str to return a NULL to keep API consistent. test.c calls it directly without checking for the NULL but it shouldn't be submitting wrong values because previous checks, as long the enum and the string array are in sync.

Langage dominant
C++
Étoiles
1.3k
Forks
297
Merge moyen
2 j 17 h
PR mergées (30 j)
15

Préparer son environnement

Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Vector35/binaryninja-api

Toutes les issues de Vector35/binaryninja-api

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.