[BACK]Return to magic-load.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / file

Diff for /src/usr.bin/file/magic-load.c between version 1.21 and 1.22

version 1.21, 2016/05/01 10:34:30 version 1.22, 2016/05/01 10:56:03
Line 193 
Line 193 
                 case MAGIC_TYPE_NONE:                  case MAGIC_TYPE_NONE:
                 case MAGIC_TYPE_BESTRING16:                  case MAGIC_TYPE_BESTRING16:
                 case MAGIC_TYPE_LESTRING16:                  case MAGIC_TYPE_LESTRING16:
                   case MAGIC_TYPE_NAME:
                   case MAGIC_TYPE_USE:
                         return (0); /* don't use result */                          return (0); /* don't use result */
                 case MAGIC_TYPE_BYTE:                  case MAGIC_TYPE_BYTE:
                 case MAGIC_TYPE_UBYTE:                  case MAGIC_TYPE_UBYTE:
Line 297 
Line 299 
         case MAGIC_TYPE_DEFAULT:          case MAGIC_TYPE_DEFAULT:
                 return (0);                  return (0);
         case MAGIC_TYPE_CLEAR:          case MAGIC_TYPE_CLEAR:
           case MAGIC_TYPE_NAME:
           case MAGIC_TYPE_USE:
                 break;                  break;
         case MAGIC_TYPE_BYTE:          case MAGIC_TYPE_BYTE:
         case MAGIC_TYPE_UBYTE:          case MAGIC_TYPE_UBYTE:
Line 634 
Line 638 
         ml->type_operator = ' ';          ml->type_operator = ' ';
         ml->type_operand = 0;          ml->type_operand = 0;
   
           if (strncmp(s, "name", (sizeof "name") - 1) == 0) {
                   ml->type = MAGIC_TYPE_NAME;
                   ml->type_string = xstrdup(s);
                   goto done;
           }
           if (strncmp(s, "use", (sizeof "use") - 1) == 0) {
                   ml->type = MAGIC_TYPE_USE;
                   ml->type_string = xstrdup(s);
                   goto done;
           }
   
         if (strncmp(s, "string", (sizeof "string") - 1) == 0 ||          if (strncmp(s, "string", (sizeof "string") - 1) == 0 ||
             strncmp(s, "ustring", (sizeof "ustring") - 1) == 0) {              strncmp(s, "ustring", (sizeof "ustring") - 1) == 0) {
                 if (*s == 'u')                  if (*s == 'u')
Line 853 
Line 868 
         }          }
   
         switch (ml->type) {          switch (ml->type) {
           case MAGIC_TYPE_NAME:
           case MAGIC_TYPE_USE:
                   copy = s = xmalloc(strlen(*line) + 1);
                   if (magic_get_string(line, s, &slen) != 0 || slen == 0) {
                           magic_warn(ml, "can't parse string");
                           goto fail;
                   }
                   if (slen == 0 || *s == '\0' || strcmp(s, "^") == 0) {
                           magic_warn(ml, "invalid name");
                           goto fail;
                   }
                   ml->name = s;
                   return (0); /* do not free */
         case MAGIC_TYPE_STRING:          case MAGIC_TYPE_STRING:
         case MAGIC_TYPE_PSTRING:          case MAGIC_TYPE_PSTRING:
         case MAGIC_TYPE_SEARCH:          case MAGIC_TYPE_SEARCH:
Line 960 
Line 988 
 }  }
 RB_GENERATE(magic_tree, magic_line, node, magic_compare);  RB_GENERATE(magic_tree, magic_line, node, magic_compare);
   
   int
   magic_named_compare(struct magic_line *ml1, struct magic_line *ml2)
   {
           return (strcmp(ml1->name, ml2->name));
   }
   RB_GENERATE(magic_named_tree, magic_line, node, magic_named_compare);
   
 static void  static void
 magic_adjust_strength(struct magic *m, u_int at, struct magic_line *ml,  magic_adjust_strength(struct magic *m, u_int at, struct magic_line *ml,
     char *line)      char *line)
Line 1125 
Line 1160 
                 }                  }
   
                 ml->strength = magic_get_strength(ml);                  ml->strength = magic_get_strength(ml);
                 if (ml->parent == NULL)                  if (ml->parent == NULL) {
                         RB_INSERT(magic_tree, &m->tree, ml);                          if (ml->name != NULL)
                 else                                  RB_INSERT(magic_named_tree, &m->named, ml);
                           else
                                   RB_INSERT(magic_tree, &m->tree, ml);
                   } else
                         TAILQ_INSERT_TAIL(&ml->parent->children, ml, entry);                          TAILQ_INSERT_TAIL(&ml->parent->children, ml, entry);
                 parent0 = ml;                  parent0 = ml;
         }          }

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.22