diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2007-10-04 22:18:48 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2007-10-04 22:18:48 +0000 |
commit | c63d4ab80f407fd67e0b8497265f60904ce7ba7e (patch) | |
tree | f652e410557a1029273f4f6e1dc7b2302e059a3f | |
parent | 26b340964a55f754a3001c18598f670d20578777 (diff) | |
download | rtmux-c63d4ab80f407fd67e0b8497265f60904ce7ba7e.tar.gz rtmux-c63d4ab80f407fd67e0b8497265f60904ce7ba7e.tar.bz2 rtmux-c63d4ab80f407fd67e0b8497265f60904ce7ba7e.zip |
Handle NULL value properly.
-rw-r--r-- | cmd-set-option.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/cmd-set-option.c b/cmd-set-option.c index 2ead2752..7d229b4f 100644 --- a/cmd-set-option.c +++ b/cmd-set-option.c @@ -1,4 +1,4 @@ -/* $Id: cmd-set-option.c,v 1.3 2007-10-04 22:04:01 nicm Exp $ */ +/* $Id: cmd-set-option.c,v 1.4 2007-10-04 22:18:48 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -102,17 +102,24 @@ cmd_set_option_exec(void *ptr, unused struct cmd_ctx *ctx) return; } - number = strtonum(data->value, 0, UINT_MAX, &errstr); - - bool = -1; - if (number == 1 || - strcmp(data->value, "on") == 0 || strcmp(data->value, "yes") == 0) + if (data->value != NULL) { + number = strtonum(data->value, 0, UINT_MAX, &errstr); + + bool = -1; + if (number == 1 || strcmp(data->value, "on") == 0 || + strcmp(data->value, "yes") == 0) + bool = 1; + if (number == 0 || strcmp(data->value, "off") == 0 || + strcmp(data->value, "no") == 0) + bool = 0; + } else bool = 1; - if (number == 0 || - strcmp(data->value, "off") == 0 || strcmp(data->value, "no") == 0) - bool = 0; - + if (strcmp(data->option, "prefix") == 0) { + if (data->value == NULL) { + ctx->error(ctx, "invalid value"); + return; + } key = key_string_lookup_string(data->value); if (key == KEYC_NONE) { ctx->error(ctx, "unknown key: %s", data->value); |