Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libbrand/common/libbrand.c
          +++ new/usr/src/lib/libbrand/common/libbrand.c
↓ open down ↓ 315 lines elided ↑ open up ↑
 316  316                  xmlFreeDoc(bhp->bh_config);
 317  317          free(bhp);
 318  318  }
 319  319  
 320  320  static int
 321  321  i_substitute_tokens(const char *sbuf, char *dbuf, int dbuf_size,
 322  322      const char *zonename, const char *zonepath, const char *username,
 323  323      const char *curr_zone)
 324  324  {
 325  325          int dst, src;
 326      -        static char *env_pool = NULL;
 327  326  
 328  327          /*
 329  328           * Walk through the characters, substituting values as needed.
 330  329           */
 331  330          dbuf[0] = '\0';
 332  331          dst = 0;
 333  332          for (src = 0; src < strlen((char *)sbuf) && dst < dbuf_size; src++) {
 334  333                  if (sbuf[src] != '%') {
 335  334                          dbuf[dst++] = sbuf[src];
 336  335                          continue;
 337  336                  }
 338  337  
 339  338                  switch (sbuf[++src]) {
 340  339                  case '%':
 341  340                          dst += strlcpy(dbuf + dst, "%", dbuf_size - dst);
 342  341                          break;
 343      -                case 'P':
 344      -                        if (env_pool == NULL)
 345      -                                env_pool = getenv("_ZONEADMD_ZPOOL");
 346      -                        if (env_pool == NULL)
 347      -                                break;
 348      -                        dst += strlcpy(dbuf + dst, env_pool, dbuf_size - dst);
 349      -                        break;
 350  342                  case 'R':
 351  343                          if (zonepath == NULL)
 352  344                                  break;
 353  345                          dst += strlcpy(dbuf + dst, zonepath, dbuf_size - dst);
 354  346                          break;
 355  347                  case 'u':
 356  348                          if (username == NULL)
 357  349                                  break;
 358  350                          dst += strlcpy(dbuf + dst, username, dbuf_size - dst);
 359  351                          break;
↓ open down ↓ 698 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX