Jelajahi Sumber

avpops: create a local pv structure when parameter is only flags

- flags details are stored inside it
- fixes crash at startup reported by Kevin Scott Adams, FS#381
Daniel-Constantin Mierla 11 tahun lalu
induk
melakukan
3c88f1de9d
1 mengubah file dengan 8 tambahan dan 0 penghapusan
  1. 8 0
      modules/avpops/avpops_parse.c

+ 8 - 0
modules/avpops/avpops_parse.c

@@ -129,6 +129,14 @@ int parse_avp_db(char *s, struct db_param *dbp, int allow_scheme)
 				goto error;
 			}
 		}
+		/* no pv to lookup, create one to store flags details */
+		dbp->a.u.sval = (pv_spec_t*)pkg_malloc(sizeof(pv_spec_t));
+		if(dbp->a.u.sval==NULL)
+		{
+			LM_ERR("no more pkg\n");
+			goto error;
+		}
+		memset(dbp->a.u.sval, 0, sizeof(pv_spec_t));
 		dbp->a.u.sval->pvp.pvn.u.isname.type |= (flags<<8)&0xff00;
 		dbp->a.type = AVPOPS_VAL_NONE;
 	} else {