Print this page
4694 svcs(1) truncates contract ID
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Approved by: Gordon Ross <gordon.ross@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/svc/svcs/svcs.c
          +++ new/usr/src/cmd/svc/svcs/svcs.c
↓ open down ↓ 994 lines elided ↑ open up ↑
 995  995  reverse_bytes(char *buf, size_t len)
 996  996  {
 997  997          int i;
 998  998  
 999  999          for (i = 0; i < len; ++i)
1000 1000                  buf[i] = ~buf[i];
1001 1001  }
1002 1002  
1003 1003  /* CTID */
1004 1004  #define CTID_COLUMN_WIDTH               6
     1005 +#define CTID_COLUMN_BUFSIZE             20      /* max ctid_t + space + \0 */
1005 1006  
1006 1007  static void
1007 1008  sprint_ctid(char **buf, scf_walkinfo_t *wip)
1008 1009  {
1009 1010          int r;
1010 1011          uint64_t c;
1011      -        size_t newsize = (*buf ? strlen(*buf) : 0) + CTID_COLUMN_WIDTH + 2;
     1012 +        size_t newsize = (*buf ? strlen(*buf) : 0) + CTID_COLUMN_BUFSIZE;
1012 1013          char *newbuf = safe_malloc(newsize);
1013 1014          int restarter_spec;
1014 1015  
1015 1016          /*
1016 1017           * Use the restarter specific get pids routine, if available.
1017 1018           * Only check for non-legacy services (wip->pg == 0).
1018 1019           */
1019 1020          if (wip->pg != NULL) {
1020 1021                  r = pg_get_single_val(wip->pg, scf_property_contract,
1021 1022                      SCF_TYPE_COUNT, &c, 0, EMPTY_OK | MULTI_OK);
↓ open down ↓ 2906 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX