From e3ac20a7f6c59bc02da04ec84d5c197a9b2152a4 Mon Sep 17 00:00:00 2001
From: Mark Michelson <mmichelson@digium.com>
Date: Mon, 17 May 2010 22:08:01 +0000
Subject: [PATCH] Merged revisions 263639 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r263639 | mmichelson | 2010-05-17 17:00:28 -0500 (Mon, 17 May 2010) | 10 lines

  Fix logic error when checking for a devstate provider.

  When using strsep, if one of the list of specified separators is not found,
  it is the first parameter to strsep which is now NULL, not the pointer returned
  by strsep.

  This issue isn't especially severe in that the worst it is likely to do is waste
  some cycles when a device with no '/' and no ':' is passed to ast_device_state.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263640 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 main/devicestate.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/main/devicestate.c b/main/devicestate.c
index 49e24d8abf..3fee8fe1ea 100644
--- a/main/devicestate.c
+++ b/main/devicestate.c
@@ -323,8 +323,10 @@ static enum ast_device_state _ast_device_state(const char *device, int check_cac
 	buf = ast_strdupa(device);
 	tech = strsep(&buf, "/");
 	if (!(number = buf)) {
-		if (!(provider = strsep(&tech, ":")))
+		provider = strsep(&tech, ":");
+		if (!tech) {
 			return AST_DEVICE_INVALID;
+		}
 		/* We have a provider */
 		number = tech;
 		tech = NULL;
-- 
GitLab