scripting, remove free

This commit is contained in:
iceman1001 2018-02-03 22:33:51 +01:00
commit 0234ca5654
3 changed files with 33 additions and 37 deletions

View file

@ -95,7 +95,7 @@ int GetModels(char *Models[], int *count, uint8_t *width){
for (int mode = 0; mode < *count; ++mode) { for (int mode = 0; mode < *count; ++mode) {
mbynum(&model, mode); mbynum(&model, mode);
mcanon(&model); mcanon(&model);
size_t size = (model.name && *model.name) ? strlen(model.name) : 6; size_t size = (model.name && *model.name) ? strlen(model.name) : 7;
char *tmp = calloc(size+1, sizeof(char)); char *tmp = calloc(size+1, sizeof(char));
if (tmp==NULL) if (tmp==NULL)
return uerr("[!] out of memory?"); return uerr("[!] out of memory?");
@ -171,7 +171,7 @@ int GetModels(char *Models[], int *count, uint8_t *width){
/* the selected model solved all arguments */ /* the selected model solved all arguments */
mcanon(&pset); mcanon(&pset);
size_t size = (pset.name && *pset.name) ? strlen(pset.name) : 6; size_t size = (pset.name && *pset.name) ? strlen(pset.name) : 7;
//PrintAndLog("Size: %d, %s, count: %d",size,pset.name, Cnt); //PrintAndLog("Size: %d, %s, count: %d",size,pset.name, Cnt);
char *tmp = calloc(size+1, sizeof(char)); char *tmp = calloc(size+1, sizeof(char));
if (tmp == NULL){ if (tmp == NULL){

View file

@ -723,12 +723,12 @@ static const struct malias aliases[] = {
#else /* PRESETS */ #else /* PRESETS */
static const struct mpreset models[] = { static const struct mpreset models[] = {
{ 0UL, 0, 0, P_BE, 0, 0, 0, NULL }, /* terminating entry */ { 0UL, 0, 0, P_BE, 0, 0, 0, NULL }, /* terminating entry */
}; };
# define NPRESETS 0 # define NPRESETS 0
static const struct malias aliases[] = { static const struct malias aliases[] = {
{NULL, NULL }, /* terminating entry */ {NULL, NULL }, /* terminating entry */
}; };
# define NALIASES 0 # define NALIASES 0
@ -760,26 +760,26 @@ int mbynam(model_t *dest, const char *key) {
int cmp = 1; int cmp = 1;
char *ukey, *uptr; char *ukey, *uptr;
if(!aliases->name) if (!aliases->name)
return(-1); return(-1);
if(!(ukey = malloc((size_t) 1 + strlen(key)))) { if (!(ukey = malloc((size_t) 1 + strlen(key) + 1))) {
uerror("cannot allocate memory for comparison string"); uerror("[!] cannot allocate memory for comparison string");
return(0); return(0);
} }
uptr = ukey; uptr = ukey;
do do
*uptr++ = toupper(*key); *uptr++ = toupper(*key);
while(*key++); while (*key++);
while(left < right && cmp) { while (left < right && cmp) {
middle = (left >> 1) + (right >> 1); middle = (left >> 1) + (right >> 1);
cmp = strcmp(ukey, aliases[middle].name); cmp = strcmp(ukey, aliases[middle].name);
if(cmp < 0) right = middle; if (cmp < 0) right = middle;
else if(cmp > 0) left = middle + 1; else if (cmp > 0) left = middle + 1;
} }
free(ukey); free(ukey);
if(cmp) if (cmp)
return(0); return(0);
munpack(dest, aliases[middle].model); munpack(dest, aliases[middle].model);
return(1); return(1);
@ -787,7 +787,7 @@ int mbynam(model_t *dest, const char *key) {
void mbynum(model_t *dest, int num) { void mbynum(model_t *dest, int num) {
/* Sets parameters in dest according to the model indexed by num. */ /* Sets parameters in dest according to the model indexed by num. */
if(num > NPRESETS) if (num > NPRESETS)
num = NPRESETS; num = NPRESETS;
munpack(dest, num+models); munpack(dest, num+models);
} }
@ -806,17 +806,17 @@ char * mnames(void) {
char *string, *sptr; char *string, *sptr;
const struct malias *aptr = aliases; const struct malias *aptr = aliases;
while(aptr->name) { while (aptr->name) {
if(aptr == aptr->model->alias) if (aptr == aptr->model->alias)
size += strlen(aptr->name) + 1; size += strlen(aptr->name) + 1;
++aptr; ++aptr;
} }
if(!size) return(NULL); if (!size) return(NULL);
if((string = malloc(size))) { if ((string = malloc(size))) {
aptr = aliases; aptr = aliases;
sptr = string; sptr = string;
while(aptr->name) { while (aptr->name) {
if(aptr == aptr->model->alias) { if (aptr == aptr->model->alias) {
strcpy(sptr, aptr->name); strcpy(sptr, aptr->name);
sptr += strlen(aptr->name); sptr += strlen(aptr->name);
*sptr++ = '\n'; *sptr++ = '\n';
@ -836,49 +836,48 @@ void mmatch(model_t *model, int flags) {
size_t left = 0, right = NPRESETS, middle = 0; size_t left = 0, right = NPRESETS, middle = 0;
poly_t poly = PZERO; poly_t poly = PZERO;
int cmp = 1; int cmp = 1;
if(!model) return; if (!model) return;
while(left < right && cmp) { while (left < right && cmp) {
middle = (left >> 1) + (right >> 1); middle = (left >> 1) + (right >> 1);
PUNPACK(&poly, models+middle, bspoly); PUNPACK(&poly, models+middle, bspoly);
cmp = psncmp(&model->spoly, &poly); cmp = psncmp(&model->spoly, &poly);
if(!cmp) { if (!cmp) {
PUNPACK(&poly, models+middle, binit); PUNPACK(&poly, models+middle, binit);
cmp = psncmp(&model->init, &poly); cmp = psncmp(&model->init, &poly);
} }
if(!cmp) { if (!cmp) {
if((model->flags & P_REFIN) && (~models[middle].flags & P_REFIN)) if ((model->flags & P_REFIN) && (~models[middle].flags & P_REFIN))
cmp = 1; cmp = 1;
else if((~model->flags & P_REFIN) && (models[middle].flags & P_REFIN)) else if ((~model->flags & P_REFIN) && (models[middle].flags & P_REFIN))
cmp = -1; cmp = -1;
else if((model->flags & P_REFOUT) && (~models[middle].flags & P_REFOUT)) else if ((model->flags & P_REFOUT) && (~models[middle].flags & P_REFOUT))
cmp = 1; cmp = 1;
else if((~model->flags & P_REFOUT) && (models[middle].flags & P_REFOUT)) else if ((~model->flags & P_REFOUT) && (models[middle].flags & P_REFOUT))
cmp = -1; cmp = -1;
else { else {
PUNPACK(&poly, models+middle, bxorout); PUNPACK(&poly, models+middle, bxorout);
cmp = psncmp(&model->xorout, &poly); cmp = psncmp(&model->xorout, &poly);
} }
} }
if(cmp < 0) right = middle; if (cmp < 0) right = middle;
else if(cmp > 0) left = middle + 1; else if (cmp > 0) left = middle + 1;
} }
pfree(&poly); pfree(&poly);
if(!cmp) { if (!cmp) {
model->name = models[middle].alias->name; model->name = models[middle].alias->name;
if(flags & M_OVERWR) if (flags & M_OVERWR)
munpack(model, models+middle); munpack(model, models+middle);
} }
} }
/* Private functions */ /* Private functions */
static void munpack(model_t *dest, const struct mpreset *src) { static void munpack(model_t *dest, const struct mpreset *src) {
/* Copies the parameters of src to dest. /* Copies the parameters of src to dest.
* dest must be an initialised model. * dest must be an initialised model.
*/ */
if(!dest || !src) return; if (!dest || !src) return;
MUNPACK(spoly); MUNPACK(spoly);
MUNPACK(init); MUNPACK(init);
MUNPACK(xorout); MUNPACK(xorout);

View file

@ -466,9 +466,6 @@ static int l_reveng_models(lua_State *L){
int ans = GetModels(models, &count, width); int ans = GetModels(models, &count, width);
if (!ans) { if (!ans) {
for (int i =0; i<102; i++) {
free(models[i]);
}
return returnToLuaWithError(L, "Didn't find any models"); return returnToLuaWithError(L, "Didn't find any models");
} }