Ignore:
Timestamp:
Dec 20, 2016, 4:07:32 PM (7 years ago)
Author:
Bruno Cornec
Message:

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

Location:
branches/3.3
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/3.3/mindi-busybox/miscutils/devfsd.c

    r3232 r3621  
    285285/* Busybox stuff */
    286286#if ENABLE_DEVFSD_VERBOSE || ENABLE_DEBUG
    287 #define info_logger(p, fmt, args...)                 bb_info_msg(fmt, ## args)
     287#define info_logger(p, fmt, args...)                 bb_error_msg(fmt, ## args)
    288288#define msg_logger(p, fmt, args...)                  bb_error_msg(fmt, ## args)
    289289#define msg_logger_and_die(p, fmt, args...)          bb_error_msg_and_die(fmt, ## args)
     
    10841084    struct passwd *pw_ent;
    10851085    struct group *grp_ent;
    1086     static const char *msg;
     1086    const char *msg;
     1087
     1088    if (isdigit(string[0]) || ((string[0] == '-') && isdigit(string[1])))
     1089        return atoi(string);
     1090
     1091    if (flag == UID && (pw_ent = getpwnam(string)) != NULL)
     1092        return pw_ent->pw_uid;
    10871093
    10881094    if (ENABLE_DEVFSD_VERBOSE)
    10891095        msg = "user";
    10901096
    1091     if (isdigit(string[0]) ||((string[0] == '-') && isdigit(string[1])))
    1092         return atoi(string);
    1093 
    1094     if (flag == UID && (pw_ent = getpwnam(string)) != NULL)
    1095         return pw_ent->pw_uid;
    1096 
    1097     if (flag == GID && (grp_ent = getgrnam(string)) != NULL)
    1098         return grp_ent->gr_gid;
    1099     else if (ENABLE_DEVFSD_VERBOSE)
    1100         msg = "group";
     1097    if (flag == GID) {
     1098        if ((grp_ent = getgrnam(string)) != NULL)
     1099            return grp_ent->gr_gid;
     1100        if (ENABLE_DEVFSD_VERBOSE)
     1101            msg = "group";
     1102    }
    11011103
    11021104    if (ENABLE_DEVFSD_VERBOSE)
     
    11411143static const char *get_variable(const char *variable, void *info)
    11421144{
    1143     static char sbuf[sizeof(int)*3 + 2]; /* sign and NUL */
    11441145    static char *hostname;
    11451146
    11461147    struct get_variable_info *gv_info = info;
    11471148    const char *field_names[] = {
    1148             "hostname", "mntpt", "devpath", "devname",
    1149             "uid", "gid", "mode", hostname, mount_point,
    1150             gv_info->devpath, gv_info->devname, NULL
     1149            "hostname", "mntpt", "devpath", "devname", "uid", "gid", "mode",
     1150            NULL, mount_point, gv_info->devpath, gv_info->devname, NULL
    11511151    };
    11521152    int i;
     
    11541154    if (!hostname)
    11551155        hostname = safe_gethostname();
     1156    field_names[7] = hostname;
     1157
    11561158    /* index_in_str_array returns i>=0  */
    11571159    i = index_in_str_array(field_names, variable);
     
    11631165
    11641166    if (i == 4)
    1165         sprintf(sbuf, "%u", gv_info->info->uid);
    1166     else if (i == 5)
    1167         sprintf(sbuf, "%u", gv_info->info->gid);
    1168     else if (i == 6)
    1169         sprintf(sbuf, "%o", gv_info->info->mode);
    1170     return sbuf;
     1167        return auto_string(xasprintf("%u", gv_info->info->uid));
     1168    if (i == 5)
     1169        return auto_string(xasprintf("%u", gv_info->info->gid));
     1170    /* i == 6 */
     1171    return auto_string(xasprintf("%o", gv_info->info->mode));
    11711172}   /*  End Function get_variable  */
    11721173
     
    14041405    const char *pty1;
    14051406    const char *pty2;
    1406     size_t len;
    14071407    /* 1 to 5  "scsi/" , 6 to 9 "ide/host", 10 sbp/, 11 vcc/, 12 pty/ */
    14081408    static const char *const fmt[] = {
     
    14241424
    14251425    for (trans = translate_table; trans->match != NULL; ++trans) {
    1426         len = strlen(trans->match);
    1427 
    1428         if (strncmp(devname, trans->match, len) == 0) {
     1426        char *after_match = is_prefixed_with(devname, trans->match);
     1427        if (after_match) {
    14291428            if (trans->format == NULL)
    1430                 return devname + len;
    1431             sprintf(buffer, trans->format, devname + len);
     1429                return after_match;
     1430            sprintf(buffer, trans->format, after_match);
    14321431            return buffer;
    14331432        }
Note: See TracChangeset for help on using the changeset viewer.