From: Ted Lemon Date: Wed, 10 Mar 1999 20:41:29 +0000 (+0000) Subject: Look options up in packet options, not generated options. X-Git-Tag: V3-ALPHA-19990315~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f11e65c53ffa79151fa549a3b8efa978167d08c7;p=thirdparty%2Fdhcp.git Look options up in packet options, not generated options. Fix data_string_truncate so that if data is shorter than requested truncation, the length is not increased. --- diff --git a/common/tree.c b/common/tree.c index 234a715e3..914528fa6 100644 --- a/common/tree.c +++ b/common/tree.c @@ -42,7 +42,7 @@ #ifndef lint static char copyright[] = -"$Id: tree.c,v 1.20 1999/03/09 20:01:56 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n"; +"$Id: tree.c,v 1.21 1999/03/10 20:41:29 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -619,7 +619,8 @@ int evaluate_data_expression (result, packet, options, expr) /* Extract an option. */ case expr_option: s0 = ((*expr -> data.option -> universe -> lookup_func) - (result, options, expr -> data.option -> code)); + (result, &packet -> options, + expr -> data.option -> code)); #if defined (DEBUG_EXPRESSIONS) log_info ("data: option %s.%s = %s", expr -> data.option -> universe -> name, @@ -1115,9 +1116,10 @@ void data_string_truncate (dp, len) struct data_string *dp; int len; { - if (len < dp -> len) + if (len < dp -> len) { dp -> terminated = 0; - dp -> len = len; + dp -> len = len; + } } int is_boolean_expression (expr)