[Pkg-shadow-commits] r2812 - in upstream/trunk: . lib
Nicolas FRANÇOIS
nekral-guest at alioth.debian.org
Sun Apr 26 16:48:51 UTC 2009
Author: nekral-guest
Date: 2009-04-26 16:48:51 +0000 (Sun, 26 Apr 2009)
New Revision: 2812
Modified:
upstream/trunk/ChangeLog
upstream/trunk/lib/commonio.c
Log:
* lib/commonio.c: Added splint annotations.
* lib/commonio.c: old_context should be local to commonio_close(),
not global.
Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog 2009-04-26 16:44:54 UTC (rev 2811)
+++ upstream/trunk/ChangeLog 2009-04-26 16:48:51 UTC (rev 2812)
@@ -1,5 +1,11 @@
2009-04-26 Nicolas François <nicolas.francois at centraliens.net>
+ * lib/commonio.c: Added splint annotations.
+ * lib/commonio.c: old_context should be local to commonio_close(),
+ not global.
+
+2009-04-26 Nicolas François <nicolas.francois at centraliens.net>
+
* src/passwd.c: Do not freecon strings duplicated with strdup.
Also avoid allocation of memory.
* src/passwd.c: Use SYSLOG instead of syslog.
Modified: upstream/trunk/lib/commonio.c
===================================================================
--- upstream/trunk/lib/commonio.c 2009-04-26 16:44:54 UTC (rev 2811)
+++ upstream/trunk/lib/commonio.c 2009-04-26 16:48:51 UTC (rev 2812)
@@ -46,7 +46,6 @@
#include "nscd.h"
#ifdef WITH_SELINUX
#include <selinux/selinux.h>
-static /*@null@*/security_context_t old_context = NULL;
#endif
#include "prototypes.h"
#include "commonio.h"
@@ -63,8 +62,7 @@
static void free_linked_list (struct commonio_db *);
static void add_one_entry (
struct commonio_db *db,
- /*@owned@*/struct commonio_entry *p)
- /*@requires isnull p->next, p->prev@*/;
+ /*@owned@*/struct commonio_entry *p);
static bool name_is_nis (const char *name);
static int write_all (const struct commonio_db *);
static /*@dependent@*/ /*@null@*/struct commonio_entry *find_entry_by_name (
@@ -431,12 +429,19 @@
}
+/*
+ * Add an entry at the end.
+ *
+ * defines p->next, p->prev
+ * (unfortunately, owned special are not supported)
+ */
static void add_one_entry (struct commonio_db *db,
/*@owned@*/struct commonio_entry *p)
- /*@requires isnull p->next, p->prev@*/
{
+ /*@-mustfreeonly@*/
p->next = NULL;
p->prev = db->tail;
+ /*@=mustfreeonly@*/
if (NULL == db->head) {
db->head = p;
}
@@ -463,23 +468,26 @@
#if KEEP_NIS_AT_END
static void add_one_entry_nis (struct commonio_db *db,
- /*@owned@*/struct commonio_entry *newp)
- /*@requires isnull newp->next, newp->prev@*/;
+ /*@owned@*/struct commonio_entry *newp);
/*
* Insert an entry between the regular entries, and the NIS entries.
+ *
+ * defines newp->next, newp->prev
+ * (unfortunately, owned special are not supported)
*/
static void add_one_entry_nis (struct commonio_db *db,
/*@owned@*/struct commonio_entry *newp)
- /*@requires isnull newp->next, newp->prev@*/
{
struct commonio_entry *p;
for (p = db->head; NULL != p; p = p->next) {
if (name_is_nis (p->eptr ? db->ops->getname (p->eptr)
: p->line)) {
+ /*@-mustfreeonly@*/
newp->next = p;
newp->prev = p->prev;
+ /*@=mustfreeonly@*/
if (NULL != p->prev) {
p->prev->next = newp;
} else {
@@ -784,6 +792,10 @@
int errors = 0;
struct stat sb;
+#ifdef WITH_SELINUX
+ /*@null@*/security_context_t old_context = NULL;
+#endif
+
if (!db->isopen) {
errno = EINVAL;
return 0;
@@ -890,10 +902,10 @@
#ifdef WITH_SELINUX
if (db->scontext != NULL) {
+ if (NULL != old_context) {
if (setfscreatecon (old_context) < 0) {
errors++;
}
- if (NULL != old_context) {
freecon (old_context);
old_context = NULL;
}
More information about the Pkg-shadow-commits
mailing list