Print this page
11506 smatch resync

Split Close
Expand all
Collapse all
          --- old/usr/src/common/ficl/vm.c
          +++ new/usr/src/common/ficl/vm.c
↓ open down ↓ 39 lines elided ↑ open up ↑
  40   40   * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  41   41   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  42   42   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  43   43   * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  44   44   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  45   45   * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  46   46   * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  47   47   * SUCH DAMAGE.
  48   48   */
  49   49  
       50 +/*
       51 + * Copyright 2019 Joyent, Inc.
       52 + */
       53 +
  50   54  #include "ficl.h"
  51   55  
  52   56  #if FICL_ROBUST >= 2
  53   57  #define FICL_VM_CHECK(vm)       \
  54   58          FICL_VM_ASSERT(vm, (*(vm->ip - 1)) == vm->runningWord)
  55   59  #else
  56   60  #define FICL_VM_CHECK(vm)
  57   61  #endif
  58   62  
  59   63  /*
↓ open down ↓ 2098 lines elided ↑ open up ↑
2158 2162   * string. Returns the length of the string. If the string is too long
2159 2163   * to fit in the pad, it is truncated.
2160 2164   */
2161 2165  int
2162 2166  ficlVmGetWordToPad(ficlVm *vm)
2163 2167  {
2164 2168          ficlString s;
2165 2169          char *pad = (char *)vm->pad;
2166 2170          s = ficlVmGetWord(vm);
2167 2171  
2168      -        if (FICL_STRING_GET_LENGTH(s) > FICL_PAD_SIZE)
2169      -                FICL_STRING_SET_LENGTH(s, FICL_PAD_SIZE);
     2172 +        if (FICL_STRING_GET_LENGTH(s) >= FICL_PAD_SIZE)
     2173 +                FICL_STRING_SET_LENGTH(s, FICL_PAD_SIZE - 1);
2170 2174  
2171 2175          (void) strncpy(pad, FICL_STRING_GET_POINTER(s),
2172 2176              FICL_STRING_GET_LENGTH(s));
2173 2177          pad[FICL_STRING_GET_LENGTH(s)] = '\0';
2174 2178          return ((int)(FICL_STRING_GET_LENGTH(s)));
2175 2179  }
2176 2180  
2177 2181  /*
2178 2182   * v m P a r s e S t r i n g
2179 2183   * Parses a string out of the input buffer using the delimiter
↓ open down ↓ 614 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX