From owner-p4-projects@FreeBSD.ORG Sun Jul 29 05:35:23 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 527ED16A420; Sun, 29 Jul 2007 05:35:23 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0EDBF16A41B for ; Sun, 29 Jul 2007 05:35:23 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 0001F13C458 for ; Sun, 29 Jul 2007 05:35:22 +0000 (UTC) (envelope-from andrew@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l6T5ZMSJ059151 for ; Sun, 29 Jul 2007 05:35:22 GMT (envelope-from andrew@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l6T5ZMvp059148 for perforce@freebsd.org; Sun, 29 Jul 2007 05:35:22 GMT (envelope-from andrew@freebsd.org) Date: Sun, 29 Jul 2007 05:35:22 GMT Message-Id: <200707290535.l6T5ZMvp059148@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to andrew@freebsd.org using -f From: Andrew Turner To: Perforce Change Reviews Cc: Subject: PERFORCE change 124296 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2007 05:35:23 -0000 http://perforce.freebsd.org/chv.cgi?CH=124296 Change 124296 by andrew@andrew_hermies on 2007/07/29 05:35:18 Start processing a install_patches call Add an assert to facund_has_update to check the value passed is valid Affected files ... .. //depot/projects/soc2007/andrew-update/backend/facund-be.c#18 edit Differences ... ==== //depot/projects/soc2007/andrew-update/backend/facund-be.c#18 (text+ko) ==== @@ -107,6 +107,7 @@ struct stat sb; char install_link[PATH_MAX], sha_base[PATH_MAX], sum[65]; + assert(pos < watched_db_count); snprintf(sha_base, PATH_MAX, "%s\n", watched_db[pos].db_base); SHA256_Data(sha_base, strlen(sha_base), sum); snprintf(install_link, PATH_MAX, "%s/%s-install", @@ -659,8 +660,24 @@ } static struct facund_response * -facund_call_install_patches(const char *id __unused, struct facund_object *obj __unused) +facund_call_install_patches(const char *id, struct facund_object *obj) { + const struct facund_object *cur; + unsigned int pos; + + if (obj == NULL) { + /* TODO: Don't use magic numbers */ + return facund_response_new(id, 1, "No data sent", NULL); + } + + if (facund_object_get_type(obj) != FACUND_ARRAY) { + return facund_response_new(id, 1, "Bad data sent", NULL); + } + + for (pos = 0; (cur = facund_object_get_array_item(obj, pos)) != NULL; + pos++) { + facund_object_print(__DECONST(struct facund_object *, cur)); + } printf("STUB: %s\n", __func__); return NULL; }