Speculative fix for not sending LOCATION UPDATING REJECT

As reported by the operator the rejecting didn't work after the
first fix (wrong logic/missing negation). The hypothesis is that
that the lchan was released before the reject timeout was fired.

Fix it by getting a reference on the lchan when allocating a
logical operation and release the reference when the operation
is finished or timed out.
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index a772f33..fc74579 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -93,6 +93,7 @@
 	del_timer(&lchan->loc_operation->updating_timer);
 	free(lchan->loc_operation);
 	lchan->loc_operation = 0;
+	put_lchan(lchan);
 }
 
 static void allocate_loc_updating_req(struct gsm_lchan *lchan)
@@ -102,6 +103,7 @@
 	lchan->loc_operation = (struct gsm_loc_updating_operation *)
 				malloc(sizeof(*lchan->loc_operation));
 	memset(lchan->loc_operation, 0, sizeof(*lchan->loc_operation));
+	use_lchan(lchan);
 }
 
 static void parse_lai(struct gsm_lai *lai, const struct gsm48_loc_area_id *lai48)