diff options
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/cmd/sort/common/fields.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/usr/src/cmd/sort/common/fields.c b/usr/src/cmd/sort/common/fields.c index 169fbc99bf..6d98515213 100644 --- a/usr/src/cmd/sort/common/fields.c +++ b/usr/src/cmd/sort/common/fields.c @@ -18,13 +18,11 @@ * * CDDL HEADER END */ + /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include "fields.h" /* @@ -481,6 +479,8 @@ field_boundary_tabbed(field_t *F, line_rec_t *L, int is_end, int is_blanks, } if ((ret = MAX(T - S, 0) + offset) >= L->l_data_length) { + if (L->l_data_length <= 0) + return (0); if (S[L->l_data_length - 1] == delimiter.sc) { return (L->l_data_length - 1); } else { @@ -542,6 +542,8 @@ field_boundary_tabbed_wide(field_t *F, line_rec_t *L, int is_end, int is_blanks, } if ((ret = MAX(T - S, 0) + offset) >= L->l_data_length) { + if (L->l_data_length <= 0) + return (0); if (S[L->l_data_length - 1] == delimiter.wc) { return (L->l_data_length - 1); } else { |