opkg: fix nullpointer dereference
[oweals/opkg-lede.git] / libopkg / nv_pair_list.h
index 0040d712da047910b6ad36115ef881f91b1d6fe7..fc9d9e250443dde60f4d02de05082369834a4904 100644 (file)
 #include "nv_pair.h"
 #include "void_list.h"
 
-typedef struct nv_pair_list_elt nv_pair_list_elt_t;
-struct nv_pair_list_elt
-{
-    nv_pair_list_elt_t *next;
-    nv_pair_t *data;
-};
+typedef struct void_list_elt nv_pair_list_elt_t;
 
-typedef struct nv_pair_list nv_pair_list_t;
-struct nv_pair_list
-{
-    nv_pair_list_elt_t pre_head;
-    nv_pair_list_elt_t *head;
-    nv_pair_list_elt_t *tail;
-};
+typedef struct void_list nv_pair_list_t;
 
 static inline int nv_pair_list_empty(nv_pair_list_t *list)
 {
-     if (list->head == NULL)
-         return 1;
-     else
-         return 0;
+    return void_list_empty ((void_list_t *)list);
 }
 
-int nv_pair_list_elt_init(nv_pair_list_elt_t *elt, nv_pair_t *data);
-void nv_pair_list_elt_deinit(nv_pair_list_elt_t *elt);
-
 int nv_pair_list_init(nv_pair_list_t *list);
 void nv_pair_list_deinit(nv_pair_list_t *list);
 
@@ -56,5 +39,10 @@ int nv_pair_list_push(nv_pair_list_t *list, nv_pair_t *data);
 nv_pair_list_elt_t *nv_pair_list_pop(nv_pair_list_t *list);
 char *nv_pair_list_find(nv_pair_list_t *list, char *name);
 
+nv_pair_list_elt_t *nv_pair_list_first(nv_pair_list_t *list); 
+nv_pair_list_elt_t *nv_pair_list_prev(nv_pair_list_t *list, nv_pair_list_elt_t *node);
+nv_pair_list_elt_t *nv_pair_list_next(nv_pair_list_t *list, nv_pair_list_elt_t *node);
+nv_pair_list_elt_t *nv_pair_list_last(nv_pair_list_t *list);
+
 #endif