3.6% repositoria Pythonis experta fuerat defuit comma erroribus

Eventus investigandi de vulnerabilitate codicis Pythonis ad errores relatos ad falsum usum commatum in codice divulgato. Problemata ex eo causantur, quod Python chordas in indice in enumeratione automatice concatenat, si comma non sint separatae, et etiam valorem tuplum tractat, si valor comma sequitur. Postquam analysin automated ex 666 GitHub repositoria cum Pythone codice gesto, investigatores possibilis distinguentes quaestiones in 5% inceptis possibilibus investigaverunt.

Praeterea inspectio manualis ostendit reales errores in tantum 24 repositoriis adesse (3.6%), et reliquae 1.4% falsas esse positivas (exempli gratia, comma consulto inter lineas omitti posse ad multi-lineas lineas tramites concatenatis, longis hashes, HTML SQL expressions vel cuneos). Notabile est inter 24 repositoria cum realibus erroribus tam magna incepta fuisse quam Tensorflow, Google V8, Sentry, Pydata xarray, rapidpro, django-colorfield et django-helpdesk. Attamen problemata cum commatibus Pythoni specificae non sunt et saepe in C/C++ inceptis oboriuntur (exempla recentium fixorum LLVM, Mono, Tensorflow).

Errorum genera praecipue studuerunt:

  • Accidens comma deest in lists, tuples, et ponit, causando chordas concatenandas pro valores separatos interpretandi. Exempli gratia, in Sentryio, una e probatio omissa est comma inter chordas "dimissiones" et "inveniendum" in indice, quae consecuta est in reprimendo tractatorem non esse "/releasesdiscover", pro "/dimittere" et "reprehendere" /reperire" seorsim.
    3.6% repositoria Pythonis experta fuerat defuit comma erroribus

    Aliud exemplum est, quod comma deest in rapidpro quod duo diversa regulae in linea 572 iungenda sunt;

    3.6% repositoria Pythonis experta fuerat defuit comma erroribus

  • Deest comma in fine unius elementi tuple definitionis, causans assignationem generis magis regularem quam tuplum assignare. Verbi gratia: "valores = (1)" in assignatione variabilis unius elementi, sed "valores = (1)" in assignatione generis integri sequentur. Parentheses in his assignationibus genus definitionis non afficiunt et sunt ad libitum, et praesentia tuple a parser tantum ex praesentia commatum determinatur. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated' # chorda pro tupla assignabitur.
  • Oppositum est extra commata in assignatione. Si comma accidentaliter in fine assignationis relictum sit, tupla assignabitur valor loco consueti generis (exempli gratia, si "value = 1," specificatur pro "value = 1").

Source: opennet.ru

Add a comment